[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
AIX Versions 3.2 and 4 Performance Tuning Guide

UDP, TCP/IP, and mbuf Tuning Parameters Summary

The following paragraphs summarize the attributes and tuning techniques for each of the communications tuning parameters.

thewall

Purpose: Provide an absolute upper bound on the amount of real memory that can be used by the communication subsystem.
Values: AIX 4.2.1 and earlier: Default: 1/8 of real memory. Range: up to 1/2 of real memory or 65536 (64 megabytes), whichever is smaller.

AIX 4.3.0: Default: 1/8 of real memory. Range: up to 1/2 of real memory or 131072 (128 megabytes), whichever is smaller.

AIX 4.3.1: Default: 1/2 of real memory. Range: up to 1/2 of real memory or 131072 (128 megabytes), whichever is smaller.

AIX 4.3.2: Default: 1/2 of real memory. Range: up to 1/2 of real memory or 1048576 (1 gigabyte), whichever is smaller.

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 the next system boot.

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

sockthresh

Purpose: In AIX Version 4.3.1 or later, provide a way to prevent new sockets from being created when almost all the network memory is in use.
Values: Default: 85% of thewall. Range: 1-100
Display: no -a or no -o sockthresh
Change: no -o sockthresh=newvalue

newvalue is a percentage of thewall.

Change takes effect immediately.

Change is effective until the next system boot.

Note: Change will fail if the user attempts to set a new value that is less than the amount of memory currently in use.
Diagnosis: None.
Tuning: Decrease percentage.
Refer to: Socket 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 the next system boot.

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

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 the next system boot.

Diagnosis: None.
Tuning: Change before attempting to set tcp_sendspace and tcp_recvspace to more than 64KB.
Refer to: TCP 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 the next system boot.

Diagnosis: None.
Tuning: Increase size, preferably to multiple of 4096.
Refer to: Socket Layer.

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 the next system boot.

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.

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 the next system boot.

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

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 the next system boot.

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

ipqmaxlen

Purpose: Specify the maximum number of entries on the IP input queue.
Values: Default: 50 Range: N/A
Display: no -a or no -o ipqmaxlen
Change: no -o ipqmaxlen=newvalue

Change takes effect immediately.

Change is effective until the next system boot.

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

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 system 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.

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 system boots.

Diagnosis: None.
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.

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.

Related Information

The crash command, ifconfig command, lsattr command, netstat command, no command.

The setsockopt subroutine.


[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]