AIX命令参考大全,卷 3,i - m - ioo 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 3,i - m

ioo 命令

用途

管理输入/输出可调参数。

语法

ioo [ -p | -r ] { -o Tunable [ =NewValue ] }

ioo [ -p | -r ] {-d Tunable}

ioo [ -p | -r ] -D

ioo [ -p | -r ] -a

ioo -?

ioo -h [ Tunable ]

ioo -L [ Tunable ]

ioo -x [ Tunable ]

注:
允许多个 -o-d-x-L 标志。

描述

注:
ioo 命令只能由 root 用户执行。

ioo 命令配置输入/输出微调参数。这个命令设置或者显示所有输入/输出微调参数当前或者下一个引导值。这个命令可以永久更改参数或者推迟到下一次重新引导再更改参数。是命令集还是显示一个参数是由附随的标志所决定的。-o 标志执行两个操作。它或者显示参数的值或者为参数设置一个新值。

如果进程显示为从文件中按顺序读取,那么由 minpgahead 参数指定的值确定了当首先检测到条件时提前读的页数。由 maxpgahead 参数指定的值设置了提前读的最大页数,而不管以前顺序读的页数。

操作系统允许调整文件系统 bufstructsnumfsbuf)的数目和由后写算法(numclust)处理的数据量。

注意:误用 ioo 命令会导致性能下降或者系统崩溃。在用 ioo实验之前,您应该非常熟悉虚拟内存管理器(VMM)的性能概述

标志

-h [Tunable] 如果指定了一个 Tunable 参数,则显示有关该参数的帮助。否则,显示 ioo 命令用法语句。
-a 给所有可调参数显示当前、重新引导(当和 -r连用时)或者永久(当和 -p) 值连用时)的值,在 tunable = value 对中每行一个。对于永久选项,如果它的重新引导值和当前值相等,那么它仅仅显示一个参数值。否则显示 NONE 值。
-d Tunable 重新设置 Tunable 为默认值。如果 Tunable 要求更改的话 (也就是说,当前没有设置为缺省值)并且是 Bosboot 或者 Reboot 类型的话,或者如果是类型 Incremental 并且从其缺省值变过来的,同时没有连用 -r ,那么它不会更改但是会显示一个警告消息。
-D 重新设置所有的可调变量为其缺省值。如果需要更改的可调变量是 BosbootReboot 类型,或者是 Incremental 类型,并且是从其缺省值更改过来的,同时也没有连用 -r ,它们就不会更改但会显示一个警告。
-o Tunable [=NewValue ] 显示值或者将 Tunable 设置为 NewValue。如果需要更改 Tunable(指定值和当前值不同),并且是 BosbootReboot 类型,或者如果它是 Incremental 类型且它的当前值大于指定值,并且未与 -r 一起使用,那么它就不会更改但会显示一个警告。

当和 -r 但不是 NewValue 一起使用时,显示可调变量的下一个引导值。当和 -p,但不是 NewValue 一起使用时, 仅仅如果 Tunable 的当前和下一个引导值相同才会显示一个值。否则显示 None 值。

-p 当和 -o-d 或者 -D 标志一起使用时,指定更改应用于当前值和重新引导值。除了当前值的更新外,打开 /etc/tunables/nextboot 文件的更新。这些结合不能用于 RebootBosboot 类型参数,它们的当前值无法更改。

当和 -a 或者 -o 一起使用,而不指定新值时,仅仅当参数的当前值和下次引导值相同才显示值。否则显示 NONE 值。

-r -o -d 或者 -D 标志一起使用时,使更改应用于重新引导值。也就是说,打开 /etc/tunables/nextboot 文件的更新。如果更改了任何 Bosboot 类型的参数,就会提示用户运行 bosboot

当和 -a 或者 -o 一起使用而不指定新值时,显示可调变量的下次引导值,而不是当前值。

-L [Tunable] 列出一个或所有可调变量的特征,一行显示一条,安装如下的格式:
名称                  CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES 
--------------------------------------------------------------------------------
minpgahead                2      2      2      0      4K     4KB 页面          D
     maxpgahead-------------------------------------------------------------------------------- 
maxpgahead                8      8      8      0      4K     4KB 页面          D
     minpgahead-------------------------------------------------------------------------------- 
pd_npages                 64K    64K    64K    1      512K   4KB 页面          D
-------------------------------------------------------------------------------- 
maxrandwrt                0      0      0      0      512K   4KB 页面          D
-------------------------------------------------------------------------------- 
numclust                  1      1      1      0             16KB/群集        D
-------------------------------------------------------------------------------- 
numfsbufs                 186    186    186                                    M 
-------------------------------------------------------------------------------- 
... 
其中:    CUR = 当前值
    DEF = 缺省值
    BOOT = 重新引导值
    MIN = 最小值
    MAX = 最大值
    UNIT = 可调计量单位
    TYPE = 参数类型:D(Dynamic)、S(Static)、R(Reboot)、
           B(Bosboot)、M(Mount)、I(Incremental)和 C(Connect)
    DEPENDENCIES = 相关可调参数列表,每行一个


-x [Tunable] 列出一个或所有可调变量的特征,每行一个,使用以下(电子表格)格式:
tunable,current,default,reboot,min,max,unit,type,{dtunable } 


其中:    current = 当前值
    default = 缺省值
    reboot = 重新引导值
    min = 最小值
    max = 最大值
    unit = 可调计量单位
    type = 参数类型:D(Dynamic)、S(Static)、R(for Reboot)、
               B(Bosboot)、M(Mount)、I(Incremental)和 C(Connect)
    dtunable = 用空格分开的相关可调参数列表

-? 显示 ioo 命令用法语句。

任何对 Mount 类型参数的更改(用 -o-d 或者 -D)都将会导致显示一条消息,以警告用户该更改仅对以后的安装才有效。

对 Connect 类型参数的任何更改(使用 -o, -d-D 标志)都会导致重新启动 inetd,并显示一条消息,以警告用户该更改仅对以后的套接字连接才有效。

任何试图更改(用 -o-d 或者 -DBosboot 或者 Reboot 类型的参数而不用 -r,都将会导致一条错误消息。

任何试图用一个小于当前值的新值来更改(用 -o-d 或者 -D 但不用 -rIncremental 的参数当前值,都将会导致一条错误消息。

可调参数类型

通过调整命令(nonfsovmoiooschedo)来处理的所有可调参数分成这些类别:

Dynamic 如果能在任何时间更改参数
Static 如果永远不能更改参数
Reboot 如果只能在重新引导期间更改参数
Bosboot 如果只能通过运行 bosboot 并重新启动机器来更改参数
Mount 如果对参数的更改仅对以后的文件系统或目录安装有效。
Incremental 如果除了引导时间外参数仅能为增量
Connect 如果对参数的更改仅对以后的套接字连接有效

对于 Bosboot 类型的参数,无论何时进行更改,调整命令都会自动提示用户,询问他们是否想要执行 bosboot 命令。对于 Connect 类型的参数,调整命令自动重新启动 inetd 守护进程。

请注意,受管于 ioo 命令的当前参数集仅包括 Static、Dynamic、Mount 和 Incremental 类型。

兼容性方式

当在 5.2 版本以前的兼容性方式(由 sys0pre520tune 属性控制,请参阅《AIX 5L V5.2 性能管理指南》中的『调整 AIX 5.2 的增强功能』下运行时,除了那些 Bosboot 类型参数外,参数的重新引导值都没有实际意义,因为在此方式下,在引导时不应用它们。

在先前 5.2 兼容性方式下,设置可调参数为重引导值,它可以通过在引导序列时被调用的脚本中嵌入调用命令来持续执行。因此 Reboot 型的参数可以不用 -r 标志设置,以便现有的脚本继续起作用。

当一台机器迁移到 AIX 5L V5.2 这种模式就自动打开。为了完全安装,要将它关闭,并且通过在重新引导序列中应用 /etc/tunables/nextboot 文件的内容来设置参数的重新引导值。只有在该方式下,-r-p 标志才会完全起作用。请参阅AIX 5L Version 5.2 Performance Tools Guide and Reference中的『内核调整』以获取更多信息。

可调参数

hd_pbuf_cnt
目的:
指定 LVM 使用的 pbufs 的总数。
值:
  • 缺省:对于 32 位内核,默认值为(4 + 带有打开逻辑卷的物理磁盘数)* 64。 对于 64 位内核,默认值是(4 + 带有打开逻辑卷的物理磁盘数)* 128。对于 64 位内核,默认值是(4 + 带有打开逻辑卷的物理磁盘数)* 128。
  • 范围:
  • 类型:增量
诊断:
hd_pendqblked 的值为非 0,它表示 LVM 必须等待 pbufs。如想看到 hd_pendqblked 的值,可以用 vmstat -v 命令。
调整:
如果有大量并行 I/O 并且 hd_pendqblked 的值非 0,那么增加是有用的。
参考:
文件系统缓冲区调整
lvm_bufcnt
目的:
给裸物理 I/O 指定 LVM 缓冲区的数目。
值:
  • 默认:9
  • 范围:1 到 64
  • 类型:Dynamic
诊断:
对条带化的裸逻辑卷执行大量写操作的应用程序不能获得期望的吞吐率。
调整:
LVM 把裸 I/O 分割为多个 128K 一块的缓存。默认值 9 意味着大概 1 MB I/O 可以不必等待更多的缓存就处理。如果系统带有条带化的裸逻辑卷,并且这个系统正在写超过 1.125 MB 的内容,那么增加这个值也许有助于应用程序的吞吐量。如果执行大于 1MB 的裸 I/O,那么增加这个值也许将很有用。
参考:
文件系统缓冲区调整
maxpgahead
目的:
指定处理一个顺序访问文件时要预读的最大页数。
值:
  • 缺省:8(默认值应该是 2 的乘幂并且应大于或等于 minpgahead)
  • 范围:0 到 4096
  • 类型:Dynamic
诊断:
以 time 命令观察关键的依赖序列 I/O(sequential-I/O-dependent)应用程序的执行逝去时间。
调整:
因为内核的限制,使用的最大值不能超过 512。minfree 和 maxfree 之间的差应该总是大于或等于 maxpgahead。如果执行时间随着更高的 maxpgahead 下降,注意其它的应用程序以确保它们的性能还没降低。
参考:
顺序页面先读
maxrandwrt
目的:
在执行后写算法使得后继页刷新到磁盘前为累计在 RAM 中的随机写指定一个阀值(以 4KB 页)。随机后写阈值是以每个文件为基础。
值:
  • 缺省:0
  • 范围:0 到 页中最大文件大小
  • 类型:Dynamic
诊断:
vmstat -n 显示页数和常规间隔内(通常在 sync 守护进程把页写到磁盘时)I/O 等待的峰值。
调整:
如果运行 syncd 时发生太多的 I/O 操作,把这个值设为 1 或更高就是很有用的。默认是让随机写留在 RAM 里直到一个 sync 操作。设置 maxrandwrt 以确保在 sync 操作发生前这些写操作刷新回磁盘。然而,这也许会降低性能,因为文件每次都会被刷新。调整这个选项以支持吞吐量上的交互式响应时间。在达到阈值后,所有的后继页都立即刷新到磁盘。到达阀值的页驻留在 RAM 中直到 sync 操作。为 0 的值禁用随机后写。
参考:
顺序和随机写性能
minpgahead
目的:
指定顺序开始预读页的数目。
值:
  • 缺省:2
  • 范围:0 到 4096(必须是 2 的乘幂)
  • 类型:Dynamic
诊断:
用 time 命令观测关键的依赖序列 I/O(sequential-I/O-dependent)应用程序的流逝执行时间。
调整:
如果有很多大顺序存取操作那么增加是有用的。注意其它的应用程序以确定它们的性能不会降低。如果 I/O 模式完全随机,那么为 0 的值也许很有用。
参考:
顺序页面先读
numclust
目的:
指定由 VMM 的顺序后写算法处理的 16k 簇的数目。
值:
  • 缺省:1
  • 范围:0 到 任何正整数
  • 类型:Dynamic
诊断:
N/A
调整:
当 I/O 模式是顺序的,如果在调度它们前有必要在 RAM 中保留更多的页,那么增加是有用的。如果条带逻辑卷或者磁盘阵列正在使用中,那么增加也许是合适的。
参考:
顺序和随机写性能
numfsbufs
目的:
指定文件系统 bufstructs 数目。
值:
  • 缺省: 186(这个值取决于 bufstruct 的大小)
  • 范围:
  • 类型:Mount
诊断:
N/A
调整:
如果 VMM 必须等候一个空的 bufstruct,它会在开始 I/O 前把进程放在 VMM 的等待列表上,并且一旦缓冲结构转变为可用状态就把它唤醒。如果条带逻辑卷或者磁盘阵列正在使用中,那么增加也许是合适的。
参考:
文件系统缓冲区调整
pd_npages
目的:
指定当文件被删除后那些应该从 RAM 的一个块中删除的页数。
值:
  • 缺省:65536
  • 范围:1 到页中最大文件大小
  • 类型:Dynamic
诊断:
在删除文件时,响应比较慢的实时应用程序。
调整:
调整该选项仅对实时应用程序有用。如果实时响应比较关键,那么调整这个选项可以改善响应时间,它是通过更均匀地把从 RAM 中删除文件页的工作分布到工作负载。
参考:
文件系统缓冲区调整
sync_release_ilock
目的:
如果设置,将会引起 sync() 函数使得刷新所有的 I/O 到一个文件而没有保留索引节点锁,并且会用该锁来完成提交。
值:
  • 缺省:0(关闭)
  • 范围:0 或 1
  • 类型:Dynamic
诊断:
syncd 守护进程执行时,会阻塞 I/O 到文件的操作。
调整:
为 0 的缺省值意味着当文件所有脏页被刷新时保留索引节点锁。
参考:
文件同步性能调优
j2_inodeCacheSize
目的:
控制 JFS2 将用于索引节点高速缓存的内存总量。
值:
  • 缺省值:
    • 400(AIX 5.2F)
    • 100(AIX 5.3)
  • 范围:1 至 1000(由 /proc/sys 强制)。受 /proc/sys/fs/jfs2/inode_cache_size 控制。
  • 类型:Dynamic
诊断:
N/A
调整:
此可调参数不显式地指示将使用的总量,而是使用比例因子。该比例因子结合主内存大小来确定此索引节点高速缓存的最大内存使用量。此可调参数的有效值为 1 到 1000(包括 1 和 1000)。该值表示最大大小。系统可能无法达到最大大小。 如果降低了该可调参数,将对降低该大小产生最大影响。 可能无法立即降低此大小,因此,调整后高速缓存的大小在短期内可能高于最大值。建议不要将这些值设置为大于 400,但还是提供了此接口,以便有助于某些工作负载。高于 400 的值可能会耗尽内核堆。与此类似,根据工作负载和系统需求,低值(低于 100)可能太少。可能导致向应用程序返回类似“文件表已满”的错误。同样,在 32 位内核上,由于内核堆有限,可能永远也不能达到理想的最大值。如果更改了该值,可能需要在为特定工作负载调整时重新考虑 metadata_cache_size 的值。索引节点高速缓存控制存储在内存中的索引节点数据,因此,如果工作负载使用了大量文件,提高索引节点高速缓存的最大大小可能有所帮助。如果工作负载使用的文件不多,但这些文件都很大,增加元数据高速缓存的最大大小可能有所帮助;对此请使用 metadata_cache_size 可调参数。
j2_metadataCacheSize
目的:
控制 JFS2 将用于元数据高速缓存的内存总量。
值:
  • 缺省: 8
  • 范围:1 至 1000(由 /proc/sys 强制)。受 /proc/sys/fs/jfs2/inode_cache_size 控制。
  • 类型:Dynamic
诊断:
N/A
调整:
此可调参数不显式地指示将使用的总量,而是使用比例因子;该比例因子结合主内存大小来确定此索引节点高速缓存的最大内存使用量。此可调参数的有效值为 1 到 1000(包括 1 和 1000)。该值表示最大大小。系统可能无法达到最大大小。 如果降低了该可调参数,将对降低该大小产生最大影响。 可能无法立即降低此大小,因此,调整后高速缓存的大小在短期内可能高于最大值。建议不要将这些值设置为大于 400,但还是提供了此接口,以便有助于某些工作负载。高于 400 的值可能会耗尽内核堆。与此类似,根据工作负载和系统需求,低值(低于 100)可能太少。这可能导致显著降低访问次数。同样,在 32 位内核上,由于内核堆有限,可能永远也不能达到理想的最大值。如果更改了该值,可能需要在为特定工作负载调整时重新考虑 inode_cache_size 的值。索引节点高速缓存控制存储在内存中的索引节点数据,因此,如果工作负载使用了大量文件,提高索引节点高速缓存的最大大小可能有所帮助;对此请使用 inode_cache_size 可调参数。如果工作负载使用的文件不多,但这些文件都很大,增加元数据高速缓存的最大大小可能有所帮助。
j2_maxPageReadAhead
目的:
指定当处理在增强的 JFS 上处理顺序访问文件时要预读的最大页数。
值:
  • 缺省: 8
  • 范围:
  • 类型:Dynamic
诊断:
N/A
调整:
minfree 和 maxfree 之间的差应该总是大于或等于 j2_maxPageReadAhead。假如运行时随着更高的 j2_maxPageReadAhead 值减少的话,注意其他的应用程序来确定它们的性能没有降低。
j2_maxRandomWrite
目的:
在执行增强的 JFS 的后写算法使得后继页刷新到磁盘前为累计在 RAM 中的随机写指定一个阈值。随机后写阈值是以每个文件为基础。
值:
  • 缺省:0
  • 范围:
  • 类型:Dynamic
诊断:
N/A
调整:
如果 syncd 刷新了太多页那将是有用的。
j2_minPageReadAhead
目的:
指定当处理在增强的 JFS 上处理顺序访问文件时要预读的最小页数。
值:
  • 缺省:2
  • 范围:
  • 类型:Dynamic
诊断:
N/A
调整:
如果有很多大顺序存取操作那么增加是有用的。注意其它的应用程序以确定它们的性能不会降低。如果 I/O 模式完全随机,那么为 0 的值也许很有用。
j2_nBufferPerPagerDevice
目的:
指定增强型 JFS 文件系统 bufstructs 的数目。
值:
  • 缺省:512
  • 范围:
  • 类型:Mount
诊断:
使用 vmstat -v,xpagerbufwaitcnt 的值快速增加。
调整:
如果内核必须等待一个空闲的缓冲结构,它会在开始 I/O 前把进程放进一个等待列表上,并且一旦缓冲结构变为可用时就唤醒它。如果条带逻辑卷或者磁盘阵列正在使用中,那么增加也许是合适的。
j2_nPagesPerWriteBehindCluster
目的:
指定每个簇的页数,这个簇是由增强型 JFS 的后写算法处理。
值:
  • 缺省: 32
  • 范围:
  • 类型:Dynamic
诊断:
N/A
调整:
当 I/O 模式是顺序的,如果在调度它们前有必要在 RAM 中保留更多的页,那么增加是有用的。如果条带逻辑卷或者磁盘阵列正在使用中,那么增加也许是合适的。
j2_nRandomCluster
目的:
指定隔开的距离(在群集中),它写操作必须超出此距离以被增强的 JFS 随机后写算法认为是随机的。
值:
  • 缺省:0
  • 范围:
  • 类型:Dynamic
诊断:
N/A
调整:
如果当 I/O 模式是随机的并启用随机后写(j2_maxRandomWrite)时,有必要在调度它们之前在 RAM 中保留更多页,那么增加是有用的。
jfs_clread_enabled
目的:
此可调参数控制 JFS 是否对所有文件使用群集的读取。
值:
  • 缺省:0
  • 范围:0 - 1
  • 类型:Dynamic
诊断:
N/A
调整:
通常不需要此选项,但它可能对具有相对随机读访问模式的某些工作负载有益。
jfs_use_read_lock
目的:
控制 JFS 在从文件读取时是否使用共享锁定。 如果关闭此选项,两个进程就无法中断彼此的读取。
值:
  • 缺省:1
  • 范围:0 - 1
  • 类型:Dynamic
诊断:
N/A
调整:
某些工作负载可能从中受益。

示例

  1. 要列出所有由 ioo 命令管理的可调参数当前和重引导值、范围、单元、类型和相关性,请输入:
    ioo -L 
  2. 要打开 sync_release_ilock,请输入:
     ioo -o sync_release_ilock=1  
  3. 要显示关于 j2_nPagesPerWriteBehindCluster 的帮助,请输入:
    ioo -h j2_nPagesPerWriteBehindCluster 
  4. 要在下次重新引导后把 maxrandwrt 设为 4,请输入:
    ioo -r -o maxrandwrt=4
  5. 要永久设置所有 ioo 可调变量为默认值,请输入:
     ioo -p -D 
  6. 要列出所有 ioo 参数的重引导值,请输入:
     ioo -r -a
  7. 要列出受管于 ioo 命令的当前以及重新引导的值、范围、单元、类型以及所有可调参数的相关性,请输入:
    ioo -x

相关信息

nfso 命令、no 命令、schedo 命令、tuncheck 命令、tunchange 命令、tundefault 命令、tunrestore 命令、tunsave 命令和 vmo 命令。

AIX 5L Version 5.2 Performance Tools Guide and Reference中的『内核调整』

《AIX 5L V5.2 性能管理指南》中的『调整 AIX 5.2 的增强功能』

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]