[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]

Performance Management Guide

Network Tunable Parameters

Following are network parameters, grouped into the following sections:

Network Option Tunable Parameters

Most of the network option tunable parameters are fully described in the no man page. The following are a few other related parameters:

  1. maxmbuf
    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
  2. MTU
    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
  3. rfc1323
    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
  4. tcp_mssdflt
    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
  5. tcp_nodelay
    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)
  6. tcp_recvspace
    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
  7. tcp_sendspace
    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
  8. xmt_que_size
    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

NFS Option Tunable Parameters

Most of the NFS option tunable parameters are fully described in the nfso man page. The following are a few other related parameters:

  1. 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 -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?
  2. combehind
    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.
  3. nfsd Count
    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?
  4. numclust
    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.

Streams Tunable Attributes

The complete listing of the streams tunable attributes is located in the no man page.

[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]