Each of the following sections describes one of the AIX parameters that can affect performance. The parameters are described in alphabetical order.
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 |
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? |
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. |
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. |
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 |
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 |
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 |
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 |
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. |
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 |
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 |
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. |
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. |
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. |
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. |
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 |
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. |
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 . |
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 . |
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. |
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. |
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 . |
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 |
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. |
Purpose: | Customize the VMM memory-load-control facility to maximize use of the system while avoiding thrashing. The most frequently used parameters are:
| ||||||
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. |
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 . |
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 . |
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. |
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 . |
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. |
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. |
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? |
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 |
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 |
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 |
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 |
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 |
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 |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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 |
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. |
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. |
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). |
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: | Using Performance Implications of sync/fsync. |
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 |
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 |
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). |
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. |
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 . |
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 |
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. |
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. |
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. |
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. |
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 |
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. |