[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]
Commands Reference, Volume 3
ioo Command
Purpose
Manages Input/Output tunable parameters.
Syntax
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 ]
Note
Multiple -o, -d,
and -L flags are allowed.
Description
Note
The ioo command can only be executed
by root.
The ioo command configures Input/Output tuning parameters.
This command sets or displays current or next boot values for all Input/Output
tuning parameters. This command can also make permanent changes or defer changes
until the next reboot. Whether the command sets or displays a parameter is
determined by the accompanying flag. The -o flag performs
both actions. It can either display the value of a parameter or set a new
value for a parameter.
If a process appears to be reading sequentially from a file, the values
specified by the minpgahead parameter determine the
number of pages to be read ahead when the condition is first detected. The
value specified by the maxpgahead parameter sets the
maximum number of pages that are read ahead, regardless of the number of preceding
sequential reads.
The operating system allows tuning of the number of file system bufstructs (numfsbuf) and the amount of data processed
by the write-behind algorithm (numclust).
Attention: Misuse of the ioo command
can cause performance degradation or operating-system failure. Before experimenting
with ioo, you should be thoroughly familiar with Performance Overview of the Virtual Memory Manager (VMM).
Flags
-h Tunable |
Displays help about the specified Tunable parameter. |
-a |
Displays current, reboot (when used in conjunction with -r) or permanent (when used in conjunction with -p) value for all tunable parameters, one per line in pairs tunable = value. For the permanent option, a value is only displayed for a parameter
if its reboot and current values are equal. Otherwise NONE displays
as the value. |
-d Tunable |
Resets Tunable to its default
value. If a Tunable needs to be changed (that is it
is currently not set to its default value) and is of type Bosboot or Reboot, or if it is of type Incremental and has been changed from its default value, and -r is not used in combination, it is not changed but a warning displays. |
-D |
Resets all tunables to their default value. If tunables
needing to be changed are of type Bosboot or Reboot, or are of type Incremental and have been
changed from their default value, and -r is not used
in combination, they are not changed but a warning displays. |
-o Tunable [=NewValue ] |
Displays the value or sets Tunable to NewValue. If a Tunable needs to be changed (the specified value is different than current value),
and is of type Bosboot or Reboot,
or if it is of type Incremental and its current value
is bigger than the specified value, and -r is not used
in combination, it is not changed but a warning displays.
When -r is used in combination without a NewValue,
the nextboot value for tunable displays. When -p is
used in combination without a NewValue, a value displays
only if the current and next boot values for he Tunableare the same. Otherwise NONE displays as the value. |
-p |
Specifies that the changes apply to both the current
and reboot values when used in combination with the -o, -d or -D flags. Turns on the updating
of the /etc/tunables/nextboot file in addition to the
updating of the current value. These combinations cannot be used on Reboot and Bosboot type parameters, their current
value cannot be changed.
When used with -a or -o without specifying a new value, the values display only
if the current and next boot values for a parameter are the same. Otherwise NONE displays as the value. |
-r |
Makes changes apply to reboot values
when used in combination with the -o, -d or -D flags. That is, turns on the updating
of the /etc/tunables/nextboot file. If any parameter
of type Bosboot is changed, the user is prompted to
run bosboot.
When used with -a or -o without specifying a new value, next boot values for
tunables display instead of current values. |
-L |
Lists the characteristics of one or all tunables, one
per line, using the following format:
Name Current Default Reboot Minimum Maximum Unit Type Dependencies
value value value value value
----------------------------------------------------------------------------
param1 5 2 4 1 10 MB/s I param2
param3
Parameters can be of the following types:
- D for Dynamic if tunable can be changed at any time.
- S for Static if tunable can never be changed.
- R for Reboot if tunable can only be changed during
reboot sequence.
- B for Bosboot if tunable can only be changed by
running bosboot and rebooting machine.
- M for Mount if tunable is only effective for future
filesystems or directory mountings.
- I for Incremental if tunable can only be incremented,
except at boot time
Any change (with -o, -d or -D) to a parameter of type Mount will result
in a message being displayed to warn the user that the change is only effective
for future mountings.
Any attempt to change (with -o, -d or -D) a parameter
of type Bosboot or Reboot without -r, will result in an error message.
Any attempt
to change (with -o, -d or -D but without -r) the current value
of a parameter of type Incremental with a new value
smaller than the current value, will result in an error message.
Note
The current set of parameters managed by ioo only includes Dynamic, Mount and Incremental types. |
-? |
Displays the ioo command usage statement. |
Compatibility Mode
When running in pre 5.2 compatibility mode (controlled by the pre520tune attribute of sys0, see Introduction to AIX 5L Version 5.2 tunable parameter setting in the Performance
Management Guide), reboot values for parameters, except those of type Bosboot, are not really meaningful because in this mode
they are not applied at boot time.
In pre 5.2 compatibility mode, setting reboot values to tuning parameters
continues to be achieved by imbedding calls to tuning commands in scripts
called during the boot sequence. Parameters of type Reboot can therefore be
set without the -r flag, so that existing scripts continue
to work.
This mode is automatically turned ON when a machine is MIGRATED to AIX
5L Version 5.2. For complete installations, it is turned OFF and the reboot
values for parameters are set by applying the content of the /etc/tunables/nextboot
file during the reboot sequence. Only in that mode are the -r and -p flags
fully functional. See "AIX 5L Version 5.2 kernel tuning" in the Performance
Tools Guide and Reference for details about the new AIX 5.2 mode.
Tunable Parameters
hd_pbuf_cnt |
- Purpose:
- Specifies the total number of pbufs that the LVM uses.
- Values:
-
- Default: For the 32-bit kernel, the default is (4 + number
of physical disks with an open logical volume) * 64. For the 64-bit kernel,
the default is (4 + number of physical disks with an open logical valume)
* 128.
- Range:
- Type: Incremental
- Diagnosis:
- Value of hd_pendqblked is non-zero, which indicates
that LVM had to wait for pbufs. To see value of hd_pendqblked, use the vmstat -v command.
- Tuning:
- Useful to increase if there are a substantial number of simultaneous
I/Os and value of hd_pendqblked is non-zero.
- Refer To:
- Miscellaneous I/O Tuning Parameters
|
lvm_bufcnt |
- Purpose:
- Specifies the number of LVM buffers for raw physical I/Os.
- Values:
-
- Default: 9
- Range: 1 to 64
- Type: Dynamic
- Diagnosis:
- Applications performing large writes to striped raw logical volumes
are not obtaining the desired throughput rate.
- Tuning:
- LVM splits large raw I/Os into multiple buffers of 128 K a piece. Default
value of 9 means that about 1 MB I/Os can be processed without waiting for
more buffers. If a system is configured to have striped raw logical volumes
and is doing writes greater than 1.125 MB, increasing this value may help
the throughput of the application. If performing larger than 1 MB raw I/Os,
it might be useful to increase this value.
- Refer To:
- Miscellaneous I/O Tuning Parameters
|
maxpgahead |
- Purpose:
- Specifies the maximum number of pages to be read ahead when processing
a sequentially accessed file.
- Values:
-
- Default: 8 (the default should be a power of two and should be greater
than or equal to minpgahead)
- Range: 0 to 4096
- Type: Dynamic
- Diagnosis:
- Observe the elapsed execution time of critical sequential-I/O-dependent
applications with the time command.
- Tuning:
- Because of limitations in the kernel, do not exceed 512 as the maximum
value used. The difference between minfree and maxfree should always be equal
to or greater than maxpgahead. If execution time decreases with higher maxpgahead,
observe other applications to ensure that their performance has not deteriorated.
- Refer To:
- Sequential Read-Ahead
|
maxrandwrt |
- Purpose:
- Specifies a threshold (in 4 KB pages) for random writes to accumulate
in RAM before subsequent pages are flushed to disk by the write-behind algorithm.
The random write-behind threshold is on a per-file basis.
- Values:
-
- Default: 0
- Range: 0 to largest_file_size_in_pages
- Type: Dynamic
- Diagnosis:
- vmstat -n shows page out and I/O wait peaks on
regular intervals (usually when the sync daemon is writing pages to disk).
- Tuning:
- Useful to set this value to 1 or higher if too much I/O occurs when syncd runs. Default is to have random writes stay in RAM
until a sync operation. Setting maxrandwrt ensures these writes get flushed
to disk before the sync operation has to occur. However, this could degrade
performance because the file is then being flushed each time. Tune this option
to favor interactive response time over throughput. After the threshold is
reached, all subsequent pages are then immediately flushed to disk. The pages
up to the threshold value stay in RAM until a sync operation. A value of 0 disables
random write-behind.
- Refer To:
- VMM Write-Behind
|
minpgahead |
- Purpose:
- Specifies the number of pages with which sequential read-ahead starts.
- Values:
-
- Default: 2
- Range: 0 to 4096 (should be a power of two)
- Type: Dynamic
- Diagnosis:
- Observe the elapsed execution time of critical sequential-I/O-dependent
applications with time command.
- Tuning:
- Useful to increase if there are lots of large sequential accesses. Observe
other applications to ensure that their performance has not deteriorated.
Value of 0 may be useful if I/O pattern is purely random.
- Refer To:
- Sequential Read-Ahead
|
numclust |
- Purpose:
- Specifies the number of 16 k clusters processed by the sequential write-behind
algorithm of the VMM.
- Values:
-
- Default: 1
- Range: 0 to any positive integer
- Type: Dynamic
- Diagnosis:
- N/A
- Tuning:
- Useful to increase if there is a need to keep more pages in RAM before
scheduling them for I/O when the I/O pattern is sequential. May be appropriate
to increase if striped logical volumes or disk arrays are being used.
- Refer To:
- VMM Write-Behind
|
numfsbufs |
- Purpose:
- Specifies the number of file system bufstructs.
- Values:
-
- Default: 186 (value is dependent on the size of the bufstruct)
- Range:
- Type: Mount
- Diagnosis:
- N/A
- Tuning:
- If the VMM must wait for a free bufstruct, it puts the process on the
VMM wait list before the start I/O is issued and will wake it up once a bufstruct
has become available. May be appropriate to increase if striped logical volumes
or disk arrays are being used.
- Refer To:
- Miscellaneous I/O Tuning Parameters
|
pd_npages |
- Purpose:
- Specifies the number of pages that should be deleted in one chunk from
RAM when a file is deleted.
- Values:
-
- Default: 65536
- Range: 1 to largest filesize_in_pages
- Type: Dynamic
- Diagnosis:
- Real-time applications that experience sluggish response time while
files are being deleted.
- Tuning:
- Tuning this option is only useful for real-time applications. If real-time
response is critical, adjusting this option may improve response time by spreading
the removal of file pages from RAM more evenly over a workload.
- Refer To:
- Miscellaneous I/O Tuning Parameters
|
sync_release_ilock |
- Purpose:
- If set, will cause a sync() to flush all I/O
to a file without holding the i-node lock, and then use the i-node lock to
do the commit.
- Values:
-
- Default: 0 (off)
- Range 0 or 1
- Type: Dynamic
- Diagnosis:
- I/O to a file is blocked when the syncd daemon
is running.
- Tuning:
- Default value of 0 means that the i-node lock is held while all dirty
pages of a file are flushed.
- Refer To:
- Tuning File Syncs
|
j2_maxPageReadAhead |
- Purpose:
- Specifies the maximum number of pages to be read ahead when processing
a sequentially accessed file on Enhanced JFS.
- Values:
-
- Default: 8
- Range:
- Type: Dynamic
- Diagnosis:
- N/A
- Tuning:
- The difference between minfree and maxfree should always be equal to
or greater than j2_maxPageReadAhead. If run time decreases with higher a j2_maxPageReadAhead
value, observe other applications to ensure that their performance has not
deteriorated.
|
j2_maxRandomWrite |
- Purpose:
- Specifies a threshold for random writes to accumulate in RAM before
subsequent pages are flushed to disk by the Enhanced JFS's write-behind algorithm.
The random write-behind threshold is on a per-file basis.
- Values:
-
- Default: 0
- Range:
- Type: Dynamic
- Diagnosis:
- N/A
- Tuning:
- Useful if too many pages are flushed out by syncd.
|
j2_minPageReadAhead |
- Purpose:
- Specifies the minimum number of pages to be read ahead when processing
a sequentially accessed file on Enhanced JFS.
- Values:
-
- Default: 2
- Range:
- Type: Dynamic
- Diagnosis:
- N/A
- Tuning:
- Useful to increase if there are lots of large sequential accesses. Observe
other applications to ensure that their performance has not deteriorated.
Value of 0 may be useful if I/O pattern is purely random.
|
j2_nBufferPerPagerDevice |
- Purpose:
- Specifies the number of file system bufstructs for Enhanced JFS.
- Values:
-
- Default: 512
- Range:
- Type: Mount
- Diagnosis:
- Using vmstat -v, the value of xpagerbufwaitcnt
increases fast.
- Tuning:
- If the kernel must wait for a free bufstruct, it puts the process on
a wait list before the start I/O is issued and will wake it up once a bufstruct
has become available. May be appropriate to increase if striped logical volumes
or disk arrays are being used.
|
j2_nPagesPerWriteBehindCluster |
- Purpose:
- Specifies the number of pages per cluster processed by Enhanced JFS's
write behind algorithm.
- Values:
-
- Default: 32
- Range:
- Type: Dynamic
- Diagnosis:
- N/A
- Tuning:
- Useful to increase if there is a need to keep more pages in RAM before
scheduling them for I/O when the I/O pattern is sequential. May be appropriate
to increase if striped logical volumes or disk arrays are being used.
|
j2_nRandomCluster |
- Purpose:
- Specifies the distance apart (in clusters) that writes have to exceed
in order for them to be considered as random by the Enhanced JFS's random
write behind algorithm.
- Values:
-
- Default: 0
- Range:
- Type: Dynamic
- Diagnosis:
- N/A
- Tuning:
- Useful to increase if there is a need to keep more pages in RAM before
scheduling them for I/O when the I/O pattern is random and random write behind
is enabled (j2_maxRandomWrite).
|
Examples
- To list the current and reboot value, range, unit, type and dependencies
of all tunables parameters managed by the ioo command, type:
ioo -L
- To turn sync_release_ilock on, type:
ioo -o sync_release_ilock=1
- To display help on j2_nPagesPerWriteBehindCluster, type:
ioo -h j2_nPagesPerWriteBehindCluster
- To set maxrandwrt to 4 after the next reboot, type:
ioo -r -o maxrandwrt=4
- To permanently reset all ioo tunable parameters to default, type:
ioo -p -D
- To list the reboot value of all ioo parameters, type:
ioo -r -a
Related Information
The nfso command, no command, schedo command, tuncheck command, tundefault command, tunrestore command, tunsave command, and vmo command.
Kernel Tuning in AIX 5L Version 5.2 Performance Tools Guide and Reference.
[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]