[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]
Performance Management Guide
Kernel Tunable Parameters
Following are kernel parameters, grouped into the following sections:
Scheduler and Memory Load Control Tunable Parameters
Most of the scheduler and memory load control tunable parameters are fully
described in the schedo man
page. The following are a few other related parameters:
- maxuproc
Purpose: |
Specifies the maximum number of
processes per user ID. |
Values: |
Default: 40; Range: 1 to 131072 |
Display: |
lsattr -E -l
sys0 -a maxuproc |
Change: |
chdev -l sys0
-a maxuproc=NewValue
Change
takes effect immediately and is preserved over boot. If value is reduced,
then it goes into effect only after a system boot. |
Diagnosis: |
Users cannot fork any additional
processes. |
Tuning: |
This is a safeguard to prevent
users from creating too many processes. |
Refer to: Responding to PDT Report Messages |
- ncargs
Purpose: |
Specifies the maximum allowable
size of the ARG/ENV list (in 4KB blocks) when running exec() subroutines. |
Values: |
Default: 6; Range: 6 to 128 |
Display: |
lsattr -E -l
sys0 -a ncargs |
Change: |
chdev -l sys0
-a ncargs=NewValue
Change
takes effect immediately and is preserved over boot. |
Diagnosis: |
Users cannot execute any additional
processes because the argument list passed to the exec() system call is too long. |
Tuning: |
This is a mechanism to prevent
the exec() subroutines from failing if the argument
list is too long. Please note that tuning to a higher ncargs value puts additional constraints on system memory resources. |
|
Virtual Memory Manager Tunable Parameters
The complete listing of the virtual memory manager tunable parameters is
located in the vmo man
page.
Synchronous I/O Tunable Parameters
Most of the synchronous I/O tunable parameters are fully described in the ioo man page. The following
are a few other related parameters:
- maxbuf
Purpose: |
Number of (4 KB) pages in the
block-I/O buffer cache. |
Values: |
Default: 20; Range: 20 to 1000 |
Display: |
lsattr -E -l
sys0 -a maxbuf |
Change: |
chdev -l sys0
-a maxbuf=NewValue
Change
is effective immediately and is permanent. If the -T flag
is used, the change is immediate and lasts until the next boot. If the -P flag is used, the change is deferred until the next boot
and is permanent. |
Diagnosis: |
If the sar --b command shows breads or bwrites with %rcache and %wcache being low, you might want to tune this parameter. |
Tuning: |
This parameter normally has little
performance effect on systems, where ordinary I/O does not use the block-I/O
buffer cache. |
Refer to: Tuning Asynchronous Disk I/O |
- maxpout
Purpose: |
Specifies the maximum number of
pending I/Os to a file. |
Values: |
Default: 0 (no checking); Range:
0 to n (n should be a multiple of 4, plus 1) |
Display: |
lsattr -E -l
sys0 -a maxpout |
Change: |
chdev -l sys0
-a maxpout=NewValue
Change
is effective immediately and is permanent. If the -T flag
is used, the change is immediate and lasts until the next boot. If the -P flag is used, the change is deferred until the next boot
and is permanent. |
Diagnosis: |
If the foreground response time
sometimes deteriorates when programs with large amounts of sequential disk
output are running, sequential output may need to be paced. |
Tuning: |
Set maxpout to
33 and minpout to 16. If sequential performance deteriorates
unacceptably, increase one or both. If foreground performance is still unacceptable,
decrease both. |
- minpout
Purpose: |
Specifies the point at which programs
that have reached maxpout can resume writing to the file. |
Values: |
Default: 0 (no checking); Range:
0 to n (n should be a multiple of 4, plus 1) |
Display: |
lsattr -E -l
sys0 -a minpout |
Change: |
chdev -l sys0
-a minpout=NewValue
Change
is effective immediately and is permanent. If the -T flag
is used, the change is immediate and lasts until the next boot. If the -P flag is used, the change is deferred until the next boot
and is permanent. |
Diagnosis: |
If the foreground response time
sometimes deteriorates when programs with large amounts of sequential disk
output are running, sequential output may need to be paced. |
Tuning: |
Set maxpout to
33 and minpout to 16. If sequential performance deteriorates
unacceptably, increase one or both. If foreground performance is still unacceptable,
decrease both. |
- mount -o nointegrity
Purpose: |
A new mount option (nointegrity)
may enhance local file system performance for certain write-intensive applications.
This optimization basically eliminates writes to the JFS log. Note that the
enhanced performance is achieved at the expense of metadata integrity. Therefore,
use this option with extreme caution because a system crash can make a file
system mounted with this option unrecoverable. Nevertheless, certain classes
of applications do not require file data to remain consistent after a system
crash, and these may benefit from using the nointegrity option. Two examples
in which a nointegrity file system may be beneficial is for compiler temporary
files, and for doing a nonmigration or mksysb installation. |
- Paging Space Size
Purpose: |
The amount of disk space required
to hold pages of working storage. |
Values: |
Default: configuration-dependent;
Range: 32 MB to n MB for hd6, 16 MB to n MB for non-hd6 |
Display: |
lsps -a mkps or chps or smitty pgsp |
Change: |
Change is effective immediately
and is permanent. Paging space is not necessarily put into use immediately,
however. |
Diagnosis: |
Run: lsps -a. If processes have been killed for lack of paging space, monitor the
situation with the psdanger() subroutine. |
Tuning: |
If it appears that there is not
enough paging space to handle the normal workload, add a new paging space
on another physical volume or make the existing paging spaces larger. |
- syncd Interval
Purpose: |
The time between sync() calls by syncd. |
Values: |
Default: 60; Range: 1 to any positive
integer |
Display: |
grep syncd /sbin/rc.boot vi /sbin/rc.boot or |
Change: |
Change is effective at next boot
and is permanent. An alternate method is to use the kill command to terminate the syncd daemon and restart
it from the command line with the command /usr/sbin/syncd
interval. |
Diagnosis: |
I/O to a file is blocked when syncd is running. |
Tuning: |
At its default level, this parameter
has little performance cost. No change is recommended. Significant reductions
in the syncd interval in the interests of data integrity
(as for HACMP) could have adverse performance consequences. |
Asynchronous I/O Tunable Parameters
- maxreqs
Purpose: |
Specifies the maximum number of
asynchronous I/O requests that can be outstanding at any one time. |
Values: |
Default: 4096; Range: 1 to AIO_MAX
(/usr/include/sys/limits.h) |
Display: |
lsattr -E -l
aio0 -a maxreqs |
Change: |
chdev -l aio0
-a maxreqs=NewValue
Change
is effective immediately and is permanent. If the -T flag
is used, the change is immediate and lasts until the next boot. If the -P flag is used, the change is deferred until the next boot
and is permanent. |
Diagnosis: |
N/A |
Tuning: |
This includes requests that are
in progress, as well as those that are waiting to be started. The maximum
number of asynchronous I/O requests cannot be less than the value of AIO_MAX,
as defined in the /usr/include/sys/limits.h file, but
can be greater. It would be appropriate for a system with a high volume of
asynchronous I/O to have a maximum number of asynchronous I/O requests larger
than AIO_MAX. |
Refer to: Tuning Asynchronous Disk I/O |
- maxservers
Purpose: |
Specifies the maximum number of
AIO kprocs that will be created. |
Values: |
Default: 10 |
Display: |
lsattr -E -l
aio0 -a maxservers |
Change: |
chdev -l aio0
-a maxservers=NewValue
Change
is effective immediately and is permanent. If the -T flag
is used, the change is immediate and lasts until the next boot. If the -P flag is used, the change is deferred until the next boot
and is permanent. |
Diagnosis: |
N/A |
Tuning: |
This value limits the number of
concurrent asynchronous I/O requests. The value should be about the same as
the expected number of concurrent AIO requests. This tunable parameter only
affects AIO on JFS file systems (or Virtual Shared Disks (VSD) before AIX 4.3.2). |
Refer to: Tuning Asynchronous Disk I/O |
- minservers
Purpose: |
Specifies the number of AIO kprocs that will be created when the AIO kernel extension
is loaded. |
Values: |
Default: 1 |
Display: |
lsattr -E -l
aio0 -a maxservers |
Change: |
chdev -l aio0
-a minservers=NewValue
Change
is effective immediately and is permanent. If the -T flag
is used, the change is immediate and lasts until the next boot. If the -P flag is used, the change is deferred until the next boot
and is permanent. |
Diagnosis: |
N/A |
Tuning: |
Making this a large number is
not recommended, because each process takes up some memory. Leaving this number
small is acceptable in most cases because AIO will create additional kprocs up to maxservers as needed. This tunable
is only effective for AIO on JFS file systems (or VSDs before AIX 4.3.2). |
Refer to: Tuning Asynchronous Disk I/O |
Disk and Disk Adapter Tunable Parameters
- Disk Adapter Outstanding-Requests Limit
Purpose: |
Maximum number of requests that
can be outstanding on a SCSI bus. (Applies only to the SCSI-2 Fast/Wide Adapter.) |
Values: |
Default: 40; Range: 40 to 128 |
Display: |
lsattr -E -l
scsin -a num_cmd_elems |
Change: |
chdev -l scsin -a num_cmd_elems=NewValue
Change is effective immediately
and is permanent. If the -T flag is used, the change
is immediate and lasts until the next boot. If the -P flag
is used, the change is deferred until the next boot and is permanent. |
Diagnosis: |
Applications performing large
writes to striped raw logical volumes are not obtaining the desired throughput
rate. |
Tuning: |
Value should equal the number
of physical drives (including those in disk arrays) on the SCSI bus, times
the queue depth of the individual drives. |
- Disk Drive Queue Depth
Purpose: |
Maximum number of requests the
disk device can hold in its queue. |
Values: |
Default: IBM disks=3; Non-IBM
disks=0; Range: specified by manufacturer |
Display: |
lsattr -E -l
hdiskn |
Change: |
chdev -l hdiskn -a q_type=simple -a queue_depth=NewValue
Change is effective
immediately and is permanent. If the -T flag is used,
the change is immediate and lasts until the next boot. If the -P flag is used, the change is deferred until the next boot and is permanent. |
Diagnosis: |
N/A |
Tuning: |
If the non-IBM disk drive is capable
of request-queuing, make this change to ensure that the operating system takes
advantage of the capability. |
Refer to: Setting SCSI-Adapter and Disk-Device Queue
Limits |
Interprocess Communication Tunable Parameters
- msgmax
Purpose: |
Specifies maximum message size. |
Values: |
Dynamic with maximum value of
4 MB |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- msgmnb
Purpose: |
Specifies maximum number of bytes
on queue. |
Values: |
Dynamic with maximum value of
4 MB |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- msgmni
Purpose: |
Specifies maximum number of message
queue IDs. |
Values: |
Dynamic with maximum value of
131072 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- msgmnm
Purpose: |
Specifies maximum number of messages
per queue. |
Values: |
Dynamic with maximum value of
524288 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- semaem
Purpose: |
Specifies maximum value for adjustment
on exit. |
Values: |
Dynamic with maximum value of
16384 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- semmni
Purpose: |
Specifies maximum number of semaphore
IDs. |
Values: |
Dynamic with maximum value of
131072 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- semmsl
Purpose: |
Specifies maximum number of semaphores
per ID. |
Values: |
Dynamic with maximum value of
65535 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- semopm
Purpose: |
Specifies maximum number of operations
per semop() call. |
Values: |
Dynamic with maximum value of
1024 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- semume
Purpose: |
Specifies maximum number of undo
entries per process. |
Values: |
Dynamic with maximum value of
1024 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- semvmx
Purpose: |
Specifies maximum value of a semaphore. |
Values: |
Dynamic with maximum value of
32767 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- shmmax
Purpose: |
Specifies maximum shared memory
segment size. |
Values: |
Dynamic with maximum value of
256 MB for 32-bit processes and 0x80000000u for 64-bit |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- shmmin
Purpose: |
Specifies minimum shared-memory-segment
size. |
Values: |
Dynamic with minimum value of
1 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
- shmmni
Purpose: |
Specifies maximum number of shared
memory IDs. |
Values: |
Dynamic with maximum value of
131072 |
Display: |
N/A |
Change: |
N/A |
Diagnosis: |
N/A |
Tuning: |
Does not require tuning because
it is dynamically adjusted as needed by the kernel. |
[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]