Following are network parameters, grouped into the following sections:
Most of the network option tunable parameters are fully described in the no man page. The following are a few other related parameters:
Purpose: | Maximum Kbytes of real memory allowed for MBUFS. |
Values: | Default: 0, Range: x to y |
Display: | lsattr -E -l sys0 -a maxmbuf |
Change: | chdev -l sys0
-a maxmbuf=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 maxmbuf is greater than 0, the maxmbuf value is used regardless of the value of thewall. The upper limit on mbufs is the higher value of maxmbuf or thewall. |
Refer to: | Tuning Network Memory |
Purpose: | Limits the size of packets that are transmitted on the network. |
Values: | Default: configuration-dependent |
Display: | lsattr -E -l interface_name |
Change: | chdev -l interface_name -a mtu=NewValue
With the chdev command, the interface cannot be changed while it is in use. Change is effective across reboots. An alternate method is as follows: ifconfig interface_name mtu NewValue This changes the MTU size on a running system, but will not preserve the value across a system reboot. |
Diagnosis: | Packet fragmentation statistics. |
Tuning: | Increase MTU size for the network interfaces. For the Gigabit Ethernet adapter use the device attribute jumbo_frames=yes to enable jumbo frames (just setting MTU to 9000 on the interface is not enough). |
Refer to: | UDP and TCP/IP Performance Overview and Tuning TCP and UDP Performance |
Purpose: | Enables TCP enhancements as specified by RFC 1323 (TCP Extensions for High Performance). Value of 1 indicates that tcp_sendspace and tcp_recvspace can exceed 64 KB. |
Values: | Default: 0; Range 0 to 1 |
Display: | lsattr -El interface or ifconfig interface |
Change: | ifconfig interface rfc1323 NewValue
OR chdev -l interface -a rfc1323=NewValue The ifconfig command sets values temporarily, making it useful for testing. The chdev command alters the ODM, so custom values return after system reboots. |
Diagnosis: | N/A |
Tuning: | The default value of 0 disables the RFC enhancements on a systemwide scale. A value of 1 specifies that all TCP connections will attempt to negotiate the RFC enhancements. The SOCKETS application can override the default behavior on individual TCP connections, using the setsockopt() subroutine. This is a run-time attribute. Make changes before attempting to set tcp_sendspace and tcp_recvspace to more than 64 KB. |
Refer to: | TCP Socket Buffer Tuning |
Purpose: | Default maximum segment size used in communicating with remote networks. |
Values: | Default: 512 bytes |
Display: | lsattr -El interface or ifconfig interface |
Change: | ifconfig interface tcp_mssdflt NewValue
OR chdev -l interface -a tcp_mssdflt=NewValue The ifconfig command sets values temporarily, making it useful for testing. The chdev command alters the ODM, so custom values return after system reboots. |
Diagnosis: | N/A |
Tuning: | For AIX 4.2.1 or later, tcp_mssdflt is only used if path MTU discovery is not enabled or path MTU discovery fails to discover a path MTU. Limiting data to (MTU - 52) bytes ensures that, where possible, only full packets will be sent. This is a run-time attribute. |
Refer to: | Tuning TCP Maximum Segment Size |
Purpose: | Specifies that sockets using TCP over this interface follow the Nagle algorithm when sending data. By default, TCP follows the Nagle algorithm. |
Values: | Default: 0; Range: 0 or 1 |
Display: | lsattr -El interface or ifconfig interface |
Change: | ifconfig interface tcp_nodelay NewValue
OR chdev -l interface -a tcp_nodelay=NewValue The ifconfig command sets values temporarily, making it useful for testing. The chdev command alters the ODM, so custom values return after system reboots. |
Diagnosis: | N/A |
Tuning: | This is an Interface-Specific Network Option (ISNO) option. |
Refer to: | Relative Level of Function in UDP and TCP and Interface-Specific Network Options (ISNO) |
Purpose: | Specifies the system default socket buffer size for receiving data. This affects the window size used by TCP. |
Values: | Default: 16384 bytes |
Display: | lsattr -El interface or ifconfig interface |
Change: | ifconfig interface tcp_recvspace NewValue
OR chdev -l interface -a tcp_recvspace=NewValue The ifconfig command sets values temporarily, making it useful for testing. The chdev command alters the ODM, so custom values return after system reboots. |
Diagnosis: | N/A |
Tuning: | Setting the socket buffer size
to 16 KB (16,384) improves performance over standard Ethernet and Token-Ring
networks. The default is a value of 16384.
Lower bandwidth networks, such as Serial Line Internet Protocol (SLIP), or higher bandwidth networks, such as Serial Optical Link, should have different optimum buffer sizes. The optimum buffer size is the product of the media bandwidth and the average round-trip time of a packet.
The tcp_recvspace attribute must specify a socket buffer size less than or equal to the setting of the sb_max attribute. This is a dynamic attribute, but for daemons started by the inetd daemon, run the following commands: stopsrc -s inetd ; startsrc -s inetd |
Refer to: | TCP Socket Buffer Tuning |
Purpose: | Specifies the system default socket buffer size for sending data. |
Values: | Default: 16384 bytes |
Display: | lsattr -El interface or ifconfig interface |
Change: | ifconfig interface tcp_sendspace NewValue
OR chdev -l interface -a tcp_sendspace=NewValue The ifconfig command sets values temporarily, making it useful for testing. The chdev command alters the ODM, so custom values return after system reboots. |
Diagnosis: | N/A |
Tuning: | This affects the window size used
by TCP. Setting the socket buffer size to 16 KB (16,384) improves performance
over standard Ethernet and Token-Ring networks. The default is a value of
16,384
Lower bandwidth networks, such as Serial Line Internet Protocol (SLIP), or higher bandwidth networks, such as Serial Optical Link, should have different optimum buffer sizes. The optimum buffer size is the product of the media bandwidth and the average round-trip time of a packet: optimum_window=bandwidth * average_round_trip_time The tcp_sendspace attribute must specify a socket buffer size less than or equal to the setting of the sb_max attribute. The tcp_sendspace parameter is a dynamic attribute, but for daemons started by the inetd daemon, run the following commands: stopsrc -s inetd ; startsrc -s inetd |
Refer to: | TCP Socket Buffer Tuning |
Purpose: | Specifies the maximum number of send buffers that can be queued up for the interface. |
Values: | Default: configuration-dependent |
Display: | lsattr -E -l interface_name |
Change: | ifconfig interface_name detach
chdev -l interface_name -aque_size_name=NewValue ifconfig interface_name hostname up Cannot be changed while the interface is in use. Change is effective across reboots. |
Diagnosis: | netstat -i (Oerr > 0) |
Tuning: | Increase size. |
Refer to: | The netstat Command |
Most of the NFS option tunable parameters are fully described in the nfso man page. The following are a few other related parameters:
Purpose: | Number of biod processes available to handle NFS requests on a client. |
Values: | Default: 6; Range: 1 to any positive integer |
Display: | ps -efa | 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 biod and nfsd Daemons Are Needed? |
Purpose: | Enables commit-behind behavior on the NFS client when writing very large files over NFS Version 3 mounts. |
Values: | Default: 0; Range: 0 to 1 |
Display: | nfsstat -m |
Change: | mount -o combehind |
Diagnosis: | Poor throughput when writing very large files (primarily files larger than the amount of system memory in the NFS client) over NFS Version 3 mounts. |
Tuning: | Use this mount option on the NFS client if the primary use of NFS is to write very large files to the NFS server. Note that an undesirable feature of this option is that VMM caching of NFS file data is effectively disabled on the client. Therefore, use of this option is discouraged in environments where good NFS read performance is necessary. |
Purpose: | Specifies the maximum number of NFS server threads that are created to service incoming NFS requests. |
Values: | Default: 3891; Range: 1 to 3891 |
Display: | ps -efa | grep nfsd |
Change: | chnfs -n NewValue
Change 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: | See nfs_max_threads |
Tuning: | See nfs_max_threads |
Refer to: | How Many biod and nfsd Daemons Are Needed? |
Purpose: | Used in conjunction with the combehind option to improve write throughput performance when writing large files over NFS Version 3 mounts. |
Values: | Default: 256; Range: 8 to 1024 |
Display: | ps -efa | grep nfsd |
Change: | chnfs -n NewValue
Change 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: | Poor throughput when writing very large files (primarily files larger than the amount of system memory in the NFS client) over NFS Version 3 mounts. |
Tuning: | Use this mount option on the NFS client if the primary use of NFS is to write very large files to the NFS server. The value basically represents the minimum number of pages for which VMM will attempt to generate a commit operation from the NFS client. Too low a value can result in poor throughput due to an excessive number of commits (each of which results in synchronous writes on the server). Too high a value can also result in poor throughput due to the NFS client memory filling up with modified pages which can cause the LRU daemon to be invoked to start reclaiming pages. When the lrud runs, V3 writes essentially become synchronous because each write ends up being accompanied by a commit. This situation can be avoided by using the numclust and combehind options. |
The complete listing of the streams tunable attributes is located in the no man page.