[ Previous | Contents | Glossary | Home | Search ]
AIX Versions 3.2 and 4 Performance Tuning Guide

Appendix J. Summary of Tunable AIX Parameters

Each of the following sections describes one of the AIX parameters that can affect performance. The parameters are described in alphabetical order.

arpt_killc

Purpose: Time before an inactive, complete ARP entry is deleted.
Values: Default: 20 (minutes), Range: N/A
Display: no -a or no -o arpt_killc
Change: no -o arpt_killc=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: To reduce ARP activity in a stable network, arpt_killc can be increased. This is not a large effect.
Refer to: N/A

biod Count

Purpose: Number of biod processes available to handle NFS requests on a client.
Values: Default: 6, Range: 1 to any positive integer
Display: ps -ef | grep biod
Change: chnfs -b NewValue

Change normally takes effect immediately and is permanent. The -N flag causes an immediate, temporary change. The -I flag causes a change that takes effect at the next boot.

Diagnosis: netstat -s to look for UDP socket buffer overflows.
Tuning: Increase number until socket buffer overflows cease.
Refer to: "How Many biods and nfsds Are Needed for Good Performance?".

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: N/A
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.
Refer to: "Setting SCSI-Adapter and Disk-Device Queue Limits".

Disk Drive Queue Depth

Purpose: Maximum number of requests the disk device can hold in its queue.
Values: Default: IBM disks=3, Range: N/A
Default: 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, this change should be made to ensure that the operating system takes advantage of the capability.
Refer to: "Setting SCSI-Adapter and Disk-Device Queue Limits".

dog_ticks

Purpose: Timer granularity for IfWatchdog routines. This value is not used in AIX.
Values: Default: 60
Display: N/A
Change: N/A
Diagnosis: N/A
Tuning: N/A
Refer to: N/A

fork() Retry Interval

Purpose: Specify the amount of time to wait to retry a fork that has failed for lack of paging space.
Values: Default: 10 (10-millisecond clock ticks), Range: 10 to n clock ticks
Display: schedtune
Change: schedtune -f NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding schedtune command to /etc/inittab.

Diagnosis: If processes have been killed for lack of paging space, monitor the situation with the sigdanger() subroutine.
Tuning: If the paging-space-low condition is only due to brief, sporadic workload peaks, increasing the retry interval may allow processes to delay long enough for paging space to be released. Otherwise, make the paging spaces larger.
Refer to: N/A

ipforwarding

Purpose: Specifies whether the kernel forwards IP packets.
Values: Default: 0 (no), Range: 0 to 1
Display: no -a or no -o ipforwarding
Change: no -o ipforwarding=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: This is a configuration decision with performance consequences.
Refer to: N/A

ipfragttl

Purpose: Time to live for IP packet fragments.
Values: Default: 60 (half-seconds) , Range: 60 to n
Display: no -a or no -o ipfragttl
Change: no -o ipfragttl=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: netstat -s
Tuning: If value of IP: fragments dropped after timeout is nonzero, increasing ipfragttl may reduce retransmissions.
Refer to: N/A

ipqmaxlen

Purpose: Specify the maximum number of entries on the IP input queue.
Values: Default: 50, Range: 50 to n
Display: no -a or no -o ipqmaxlen
Change: no -o ipqmaxlen=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: Use crash to access IP input queue overflow counter.
Tuning: Increase size.
Refer to: "IP Protocol Performance Tuning Recommendations".

ipsendredirects

Purpose: Specifies whether the kernel sends redirect signals.
Values: Default: 1 (yes), Range: 0 to 1
Display: no -a or no -o ipsendredirects
Change: no -o ipsendredirects=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: N/A. This is a configuration decision with performance consequences.
Refer to: N/A

loop_check_sum (AIX Version 3.2.5 only)

Purpose: Specifies whether checksums are built and verified on a loopback interface. (This function does not exist in AIX Version 4.)
Values: Default: 1 (yes), Range: 0 to 1
Display: no -a or no -o loop_check_sum
Change: no -o loop_check_sum=0

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: Turning checksum verification off (loop_check_sum=0) is recommended.
Refer to: N/A

lowclust (AIX Version 3.2.5 only)

Purpose: Specifies the low-water mark for the mbuf cluster pool.
Values: Default: configuration-dependent, Range: 5 to n
Display: no -a or no -o lowclust
Change: no -o lowclust=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: netstat -m
Tuning: If "requests for memory denied" is nonzero, increase lowclust.
Refer to: "AIX Version 3.2.5 mbuf Pool Performance Tuning" .

lowmbuf (AIX Version 3.2.5 only)

Purpose: Specifies the low-water mark for the mbuf pool
Values: Default: configuration-dependent, Range: 64 to n
Display: no -a or no -o lowmbuf
Change: no -o lowmbuf=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: netstat -m
Tuning: If "requests for memory denied" is nonzero, increase lowmbuf.
Refer to: "AIX Version 3.2.5 mbuf Pool Performance Tuning" .

lvm_bufcnt (AIX Version 4 only)

Purpose: The number of LVM buffers for raw physical I/Os.
Values: Default: 9, Range: 1 to 64
Display: vmtune
Change: vmtune -u NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: Applications doing large writes to striped raw logical volumes are not getting the desired throughput rate.
Tuning: 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 throughput of the application.
Refer to: vmtune command

maxrandwrt (AIX Version 4.1.3 and above)

Purpose: The number of dirty file pages to accumulate in RAM before these pages are sync'd to disk via a write-behind algorithm. The random write-behind threshold is on a per file basis.
Values: Default: 0, Range: 0 to 128 (4KB pages)
Display: vmtune
Change: vmtune -W NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: vmstat n shows page out and I/O wait spikes on regular intervals (usually when the sync daemon is writing pages to disk).
Tuning: If vmstat n shows page out and I/O wait spikes on regular intervals (usually when the sync daemon is writing pages to disk), adjusting the maxrandwrt value helps spread the I/O more efficiently. A value of 0 disables random write-behind.
Refer to: "Performance Overview of AIX Management of Fixed-Disk Storage" and the vmtune command

maxbuf

Purpose: Number of (4KB) pages in the block-I/O buffer cache.
Values: Default: 20, Range: x to y
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: N/A
Tuning: This parameter normally has little performance effect on an AIX system, since ordinary I/O does not use the block-I/O buffer cache.
Refer to: N/A

max_coalesce

Purpose: Specifies the maximum size, in bytes, of requests that the SCSI device driver will coalesce from the requests in its queue.
Values: Default: 64KB, Range: 64KB to 2GB
Display: odmget
Change: odmdelete, odmadd, bosboot

Change takes effect at next boot and is permanent.

Diagnosis: N/A
Tuning: Increase if striped logical volumes or disk arrays are in use.
Refer to: "Modifying the SCSI Device Driver max_coalesce Parameter".

maxfree

Purpose: The maximum size to which the VMM page-frame free list will grow by page stealing.
Values: Default: configuration-dependent, Range: 16 to 204800 (4KB frames)
Display: vmtune
Change: vmtune -F NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: Observe free-list-size changes with vmstat n.
Tuning: If vmstat n shows free-list size frequently driven below minfree by application demands, increase maxfree to reduce calls to replenish free list. Generally, keep maxfree - minfree <= 100.
Refer to: "Tuning VMM Page Replacement".

maxperm

Purpose: The percentage of memory page frames occupied by permanent pages above which only permanent pages will have their frames stolen.
Values: Default: 80% of (memory size - 4MB), Range: 5 to 100
Display: vmtune
Change: vmtune -P NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: Monitor disk I/O with iostat n.
Tuning: If some files are known to be read repetitively, and I/O rates do not decrease with time from startup, maxperm may be too low.
Refer to: "Tuning VMM Page Replacement".

maxpgahead

Purpose: The upper limit on the number of pages the VMM will read ahead when processing a sequentially accessed file.
Values: Default: 8, Range: 0 to 16
Display: vmtune
Change: vmtune -R NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: Observe the elapsed execution time of critical sequential-I/O-dependent applications with time command.
Tuning: If execution time decreases with higher maxpgahead, observe other applications to ensure that their performance has not deteriorated.
Refer to: "Tuning Sequential Read Ahead".

maxpin (AIX Version 4 only)

Purpose: The maximum percentage of real memory that can be pinned.
Values: Default: 80 (% of RAM), Range: At least 4MB pinnable to at least 4MB unpinnable.
Display: vmtune
Change: vmtune -M NewValue

Change takes effect immediately. Change is effective until next boot.

Diagnosis: N/A
Tuning: Only change for extreme situations, such as maximum-load benchmarking.
Refer to: vmtune command.

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 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.
Refer to: "Use of Disk-I/O Pacing".

maxttl

Purpose: Time to live for Routing Information Protocol (RIP) packets.
Values: Default: 255, Range: N/A
Display: no -a or no -o maxttl
Change: no -o maxttl=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: N/A
Refer to: N/A

mb_cl_hiwat (AIX Version 3.2.5 only)

Purpose: Specifies the high-water mark for the mbuf cluster pool
Values: Default: configuration-dependent, Range: N/A
Display: no -a or no -o mb_cl_hiwat
Change: no -o mb_cl_hiwat=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: netstat -m
Tuning: If the number of mbuf clusters (called "mapped pages" by netstat) is regularly greater than mb_cl_hiwat, increase mb_cl_hiwat.
Refer to: "AIX Version 3.2.5 mbuf Pool Performance Tuning" .

Memory-Load-Control Parameters

Purpose: Customize the VMM memory-load-control facility to maximize use of the system while avoiding thrashing. The most frequently used parameters are:
   h   High memory-overcommitment threshold
   p   Process memory-overcommitment threshold
   m   Minimum level of multiprogramming
Values: h Default: 6, Range: 0 to any positive integer

p Default: 4, Range: 0 to any positive integer

m Default: 2, Range: 0 to any positive integer

Display: schedtune
Change: schedtune [-h NewValue] [-p NewValue] [-m NewValue]

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding schedtune command to /etc/inittab.

Diagnosis: Heavy memory loads cause wide variations in response time.
Tuning: schedtune -h 0 turns off memory load control.

schedtune -p 2 requires a higher level of repaging by a given process before it is a candidate for suspension by memory load control.

schedtune -m 10 requires that memory load control always leave at least 10 user processes running when it is suspending processes.

Refer to: "VMM Memory Load Control Facility" and "Tuning VMM Memory Load Control".

minfree

Purpose: The VMM page-frame free-list size at which the VMM starts to steal pages to replenish the free list.
Values: Default: configuration-dependent, Range: x to any positive integer
Display: vmtune
Change: vmtune -f NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: vmstat n
Tuning: If processes are being delayed by page stealing, increase minfree to improve response time. Increase maxfree by an equal or greater amount.
Refer to: "Tuning VMM Page Replacement".

minperm

Purpose: The percentage of page frames occupied by permanent pages below which the VMM steals frames from both permanent and working pages without regard to repage rates.
Values: Default: 20% of (memory size - 4MB), Range: 5 to 100
Display: vmtune
Change: vmtune -P NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: Monitor disk I/O with iostat n.
Tuning: If some files are known to be read repetitively, and I/O rates do not decrease with time from startup, minperm may be too low.
Refer to: "Tuning VMM Page Replacement".

minpgahead

Purpose: The number of pages the VMM reads ahead when it first detects sequential access.
Values: Default: 2, Range: 0 to 16
Display: vmtune
Change: vmtune -r NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: Observe the elapsed execution time of critical sequential-I/O-dependent applications with time command.
Tuning: If execution time decreases with higher minpgahead, observe other applications to ensure that their performance has not deteriorated.
Refer to: "Tuning Sequential Read Ahead".

minpout

Purpose: Specifies the point at which programs that have hit maxpout can resume writing to the file.
Values: Default: 0 (no checking), Range: 0 to n (n should be a multiple of 4 and should be at least 4 less than maxpout)
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 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.
Refer to: "Use of Disk-I/O Pacing".

MTU

Purpose: Limits the size of packets that are transmitted on the network.
Values: trn (4Mb): Default: 1492, Range: 60 to 3900

trn (16Mb): Default: 1492, Range: 60 to 17960

enn: Default: 1500, Range: 60 to 1500

fin: Default: 4352, Range: 60 to 4352

hin: Default: 65536, Range: 60 to 65536

son: Default: 61428, Range: 60 to 61428

lon: Default: 1500 (AIX Version 3.2.5) 16896 (AIX Version 4), Range: 60 to 65536

Display: lsattr -E -l trn
Change: chdev -l trn -a mtu=NewValue

Cannot be changed while the interface is in use. Because all systems on a LAN must have the same MTU, they must all change simultaneously. Change is effective across boots.

Diagnosis: Packet fragmentation stats
Tuning: Increase MTU size for the Token Ring interfaces:

trn (4Mb): 4056

trn (16Mb): 8500

For the loopback interface lon in Version 3.2.5, increase to 16896.

For other interfaces, the default should be kept.

Refer to: "LAN Adapters and Device Drivers".

nfs_chars (AIX Version 3.2.5), nfs_socketsize (AIX Version 4)

Purpose: The size of the NFS UDP socket buffer.
Values: Default: 60000, Range: 60000 to (sb_max -128)
Display: nfso -a or nfso -o nfs_chars (In AIX Version 4, nfso -o nfs_socketsize)
Change: nfso -o nfs_chars=NewValue

(In AIX Version 4, nfso -o nfs_socketsize=NewValue)

stopsrc -g nfs

startsrc -g nfs

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs or /etc/rc.net. sb_max must change appropriately first.

Diagnosis: netstat -s
Tuning: If the "UDP: socket buffer overflows" count is nonzero, increase sb_max and nfs_chars.
Refer to: "NFS Tuning".

nfsd Count

Purpose: Number of nfsd processes available to handle NFS requests on a server.
Values: Default: 8, Range: 1 to n
Display: ps -ef | grep nfsd
Change: chnfs -n NewValue

Change normally takes effect immediately and is permanent. The -N flag causes an immediate, temporary change. The -I flag causes a change that takes effect at the next boot.

Diagnosis: netstat -s to look for UDP socket buffer overflows.
Tuning: Increase number until socket buffer overflows cease.
Refer to: "How Many biods and nfsds Are Needed for Good Performance?".

nfs_gather_threshold (AIX Version 4 only)

Purpose: Minimum size of a write that sleeps before syncing. Used to disable scatter/gather of writes to the same vnode.
Values: Default: 4096, Range: x to y
Display: nfso -a or nfso -o nfs_gather_threshold
Change: nfso -o nfs_gather_threshold=NewValue

Change takes effect immediately.

Change is effective until next boot.

Diagnosis: N/A
Tuning: N/A
Refer to: N/A

nfs_portmon (AIX Version 3.2.5), portcheck (AIX Version 4)

Purpose: Specifies that NFS is to check whether or not requests come from privileged ports.
Values: Default: 0 (no), Range: 0 to 1
Display: nfso -a or nfso -o nfs_portmon
Change: nfso -o nfs_portmon=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis: N/A
Tuning: This is a configuration decision with minimal performance consequences.
Refer to: N/A

nfs_repeat_messages (AIX Version 4 only)

Purpose: Should messages written by NFS be repeated?
Values: Default: 1 (yes), Range: 0 to 1
Display: nfso -a or nfso -o nfs_repeat_messages
Change: nfso -o nfs_repeat_messages=NewValue

Change takes effect immediately.

Change is effective until next boot.

Diagnosis: N/A
Tuning: N/A
Refer to: N/A

nfs_setattr_error (AIX Version 4 only)

Purpose: Specifies that NFS is to ignore NFS errors due to illegal PC setattrs.
Values: Default: 1, Range: 0 to 1
Display: nfso -a
Change: nfso -o nfs_setattr_error=NewValue

Change takes effect immediately.

Change is effective until next boot.

Diagnosis: N/A
Tuning: N/A
Refer to: N/A

nfsudpcksum (AIX Version 3.2.5), udpchecksum (AIX Version 4)

Purpose: Specifies that NFS is to use UDP checksum processing.
Values: Default: 1 (yes), Range: 0 to 1
Display: nfso -a or nfso -o nfsudpcksum
Change: nfso -o nfsudpcksum=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis: N/A
Tuning: Turning checksum processing off may save some processing time but increases the risk of undetected data errors.
Refer to: N/A

nonlocsrcroute

Purpose: Indicates that strict-source-routed IP packets can be addressed to hosts outside the local ring. (Loose source routing is not affected.)
Values: Default: 0 (no), Range: 0 to 1
Display: no -a or no -o nonlocsrcroute
Change: no -o nonlocsrcroute=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: This is a configuration decision with minimal performance consequences.
Refer to: N/A

npskill (AIX Version 4 only)

Purpose: The number of free paging-space pages at which processes begin to be killed.
Values: Default: 128, Range: 0 to the number of pages in real memory.
Display: vmtune
Change: vmtune -k NewValue

Change takes effect immediately. Change is effective until next boot.

Diagnosis: N/A
Tuning: N/A
Refer to: vmtune command.

npswarn (AIX Version 4 only)

Purpose: The number of free paging-space pages at which processes begin to receive SIGDANGER.
Values: Default: 512, Range: At least npskill to the number of pages in real memory.
Display: vmtune
Change: vmtune -w NewValue

Change takes effect immediately. Change is effective until next boot.

Diagnosis: N/A
Tuning: Increase if you experience processes being killed for low paging space.
Refer to: vmtune command.

numclust (AIX Version 4 only)

Purpose: The number of 16KB clusters processed by write behind.
Values: Default: 1, Range: 1 to any positive integer
Display: vmtune
Change: vmtune -c NewValue

Change takes effect immediately. Change is effective until next boot.

Diagnosis: N/A
Tuning: May be appropriate to increase if striped logical volumes or disk arrays are being used.
Refer to: vmtune command.

numfsbuf (AIX Version 4 only)

Purpose: The number of file-system bufstructs.
Values: Default: 64, Range: 64 to any positive integer
Display: vmtune
Change: vmtune -b NewValue

Change takes effect immediately. Change is effective until next boot.

Diagnosis: N/A
Tuning: May be appropriate to increase if striped logical volumes or disk arrays are being used.
Refer to: vmtune command.

Paging Space Size

Purpose: The amount of disk space required to hold pages of working storage.
Values: Default: configuration-dependent, Range: 32MB to nMB for hd6, 16MB to nMB for non-hd6
Display: lsps -a
Change: mkps or chps or smit pgsp

Change takes effect immediately and is permanent. Paging space is not necessarily put into use immediately, however.

Diagnosis: 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.
Refer to: "Placement and Sizes of Paging Spaces".

pd_npages

Purpose: The number of pages that should be deleted in one chunk from RAM when a file is deleted.
Values: Default: largest file size / page size, Range: 1 to largest file size / page size
Display: vmtune
Change: vmtune -N NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding vmtune command to /etc/inittab.

Diagnosis: This option may be useful if a real-time application is experiencing some slow response time while large files are being deleted.
Tuning: 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: vmtune command

Process-Priority Calculation

Purpose: Specify the amount by which a process's priority value will be increased by its recent CPU usage, and the rate at which the recent-CPU-usage value decays. The parameters are called r and d.
Values: Default: 16, Range: 0 to 32 (Note: When applied to the calculation, the values of r and d are divided by 32. Thus the effective range of factors is from 0 to 1 in increments of .03125.)
Display: schedtune
Change: schedtune -r or schedtune -d

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding schedtune command to /etc/inittab.

Diagnosis: ps al If you find that the PRI column has priority values for foreground processes (those with NI values of 20) that are higher than the PRI values of some background processes (NI values > 20), you may want to reduce the r value.
Tuning: Decreasing r makes it easier for foreground processes to compete. Decreasing d enables foreground processes to avoid competition with background processes for a longer time. schedtune -r 2 would ensure that any new foreground process would receive at least .5 seconds of CPU time before it had to compete with any process with NI >= 24.
Refer to: "Tuning the Process-Priority-Value Calculation with schedtune".

rec_que_size

Purpose: (Tunable only in AIX Version 3.) Specifies the maximum number of receive buffers that can be queued up for the interface.
Values: Default: 30, Range: 20 to 150
Display: lsattr -E -l tokn -a rec_que_size
Change: ifconfig tr0 detach

chdev -I tokn -a rec_que_size=NewValue

ifconfig tr0 hostname up

Change is effective across boots.

Diagnosis: N/A
Tuning: Increase size. Should be set to 150 as a matter of course on network-oriented systems, especially servers.
Refer to: "LAN Adapters and Device Drivers".

rfc1122addrchk

Purpose: Specifies whether address validation is performed between communications layers.
Values: Default: 0 (no), Range: 0 to 1
Display: no -a or no -o rfc1122addrchk
Change: no -o rfc1122addrchk=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: This value should not be changed.
Refer to: N/A

rfc1323

Purpose: Value of 1 indicates that tcp_sendspace and tcp_recvspace can exceed 64KB.
Values: Default: 0, Range: 0 or 1
Display: no -a or no -o rfc1323
Change: no -o rfc1323=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: None.
Tuning: Change before attempting to set tcp_sendspace and tcp_recvspace to more than 64KB.
Refer to: "TCP Layer".

sb_max

Purpose: Provide an absolute upper bound on the size of TCP and UDP socket buffers. Limits setsockopt(), udp_sendspace, udp_recvspace, tcp_sendspace, and tcp_recvspace.
Values: Default: 65536, Range: N/A
Display: no -a or no -o sb_max
Change: no -o sb_max=NewValue

Change takes effect immediately for new connections. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: None.
Tuning: Increase size, preferably to multiple of 4096. Should be about twice the largest socket buffer limit.
Refer to: "Socket Layer"

subnetsarelocal

Purpose: Specifies that all subnets that match the subnet mask are to be considered local for purposes of establishing, for example, the TCP maximum segment size.
Values: Default: 1 (yes), Range: 0 to 1
Display: no -a or no -o subnetsarelocal
Change: no -o subnetsarelocal=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.
Diagnosis: N/A
Tuning: This is a configuration decision with performance consequences. If the subnets do not all have the same MTU, fragmentation at bridges may degrade performance. If the subnets do have the same MTU, and subnetsarelocal is 0, TCP sessions may use an unnecessarily small MSS.
Refer to: "Tuning TCP Maximum Segment Size (MSS)".

syncd Interval

Purpose: The time between sync() calls by syncd.
Values: Default: 60 (seconds), Range: 1 to any positive integer
Display: grep syncd /sbin/rc.boot
Change: vi /sbin/rc.boot
Change takes effect at next boot and is permanent.
Diagnosis: N/A
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 could have adverse consequences.
Refer to: "Performance Implications of sync/fsync".

tcp_keepidle

Purpose: Total length of time to keep an idle TCP connection alive.
Values: Default: 14400 (half-seconds) = 2 hours, Range: any positive integer
Display: no -a or no -o tcp_keepidle
Change: no -o tcp_keepidle=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.
Diagnosis: N/A
Tuning: This is a configuration decision with minimal performance consequences. No change is recommended.
Refer to: N/A

tcp_keepintvl

Purpose: Interval between packets sent to validate the TCP connection.
Values: Default: 150 (half-seconds) = 75 seconds, Range: any positive integer
Display: no -a or no -o tcp_keepintvl
Change: no -o tcp_keepintvl=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: This is a configuration decision with minimal performance consequences. No change is recommended. If the interval were shortened significantly, processing and bandwidth costs might become significant.
Refer to: N/A

tcp_mssdflt

Purpose: Default maximum segment size used in communicating with remote networks.
Values: Default: 512, Range: 512 to (MTU of local net - 64)
Display: no -a or no -o tcp_mssdflt
Change: no -o tcp_mssdflt=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: Increase, if practical.
Refer to: "Tuning TCP Maximum Segment Size (MSS)".

tcp_recvspace

Purpose: Provide the default value of the size of the TCP socket receive buffer.
Values: Default: 16384, Range: 0 to 64KB if rfc1323=0,

Range: 0 to 4GB if rfc1323=1.

Must be less than or equal to sb_max.

Should be equal to tcp_sendspace and uniform on all frequently accessed AIX systems.

Display: no -a or no -o tcp_recvspace
Change: no -o tcp_recvspace=NewValue

Change takes effect immediately for new connections. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: Poor throughput.
Tuning: Increase size, preferably to multiple of 4096.
Refer to: "Socket Layer".

tcp_sendspace

Purpose: Provide the default value of the size of the TCP socket send buffer.
Values: Default: 16384, Range: 0 to 64KB if rfc1323=0,

Range: 0 to 4GB if rfc1323=1.

Must be less than or equal to sb_max.

Should be equal to tcp_recvspace and uniform on all frequently accessed AIX systems.

Display: no -a or no -o tcp_sendspace
Change: no -o tcp_sendspace=NewValue

Change takes effect immediately for new connections. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: Poor throughput.
Tuning: Increase size, preferably to multiple of 4096.
Refer to: "Socket Layer".

tcp_ttl

Purpose: Time to live for TCP packets.
Values: Default: 60 (10-millisecond processor ticks), Range: any positive integer
Display: no -a or no -o tcp_ttl
Change: no -o tcp_ttl=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: netstat -s
Tuning: If the system is experiencing TCP timeouts, increasing tcp_ttl may reduce retransmissions.
Refer to: N/A

thewall

Purpose: Provide an absolute upper bound on the amount of real memory that can be used by the communications subsystem.
Values: Default: 25% of real memory, Range: 0 to 50% of real memory
Display: no -a or no -o thewall
Change: no -o thewall=NewValue

NewValue is in KB, not bytes. Change takes effect immediately for new connections. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: None.
Tuning: Increase size, preferably to multiple of 4(KB).
Refer to: "AIX Version 3.2.5 mbuf Pool Performance Tuning"

Time-Slice Expansion Amount

Purpose: The number of 10 millisecond clock ticks by which the default 10 millisecond time slice is to be increased.
Values: Default: 0, Range: 0 to any positive integer
Display: schedtune

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding schedtune command to /etc/inittab.

Change: schedtune -t NewValue
Diagnosis: N/A
Tuning: In general, this parameter should not be changed. If the workload consists almost entirely of very long-running, CPU-intensive programs, increasing this parameter may have some positive effect.
Refer to: "Modifying the Scheduler Time Slice".

udp_recvspace

Purpose: Provide the default value of the size of the UDP socket receive buffer.
Values: Default: 41600, Range: N/A

Must be less than or equal to sb_max.

Display: no -a or no -o udp_recvspace
Change: no -o udp_recvspace=NewValue

Change takes effect immediately for new connections. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: Nonzero n in netstat -s report of udp: n socket buffer overflows
Tuning: Increase size, preferably to multiple of 4096.
Refer to: "Socket Layer"

udp_sendspace

Purpose: Provide the default value for the size of the UDP socket send buffer.
Values: Default: 9216, Range: 0 to 65536

Must be less than or equal to sb_max.

Display: no -a or no -o udp_sendspace
Change: no -o udp_sendspace=NewValue

Change takes effect immediately for new connections. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: Increase size, preferably to multiple of 4096.
Refer to: "Socket Layer"

udp_ttl

Purpose: Time to live for UDP packets.
Values: Default: 30 (10-millisecond timer ticks), Range: any positive integer
Display: no -a or no -o udp_ttl
Change: no -o udp_ttl=NewValue

Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis: N/A
Tuning: N/A
Refer to: N/A

xmt_que_size

Purpose: Specifies the maximum number of send buffers that can be queued up for the device.
Values: Default: 30, Range: 20 to 150
Display: lsattr -E -l tok0 -a xmt_que_size
Change: ifconfig tr0 detach

chdev -I tok0 -a xmt_que_size=NewValue

ifconfig tr0 hostname up

Change is effective across boots.

Diagnosis: netstat -i

Oerr > 0

Tuning: Increase size. Should be set to 150 as a matter of course on network-oriented systems, especially servers.
Refer to: "LAN Adapters and Device Drivers"

[ Previous | Contents | Glossary | Home | Search ]