[ Previous | Next | Table of 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

arpqsize

Purpose:
Specifies the maximum number of packets to queue while waiting for ARP responses.

Values:
Default: 1

Display:
no -a or no -o arpqsize

Change:
no -o arpqsize=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 attribute is supported by Ethernet, 802.3, Token-Ring and FDDI interfaces. The arpqsize value is increased to a minimum value of 5 when path MTU discovery is enabled. The value will not automatically decrease if path MTU discovery is subsequently disabled. This attribute applies to Versions 4.1.5, 4.2.1, and later. This is a run-time attribute.

Refer to:
Managing Tunable SP Parameters

arpt_killc

Purpose:
Specifies the time in minutes before a complete ARP entry will be deleted.

Values:
Default: 20

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, you can increase arpt_killc. This is not a large effect. This is a run-time attribute.

arptab_bsiz

Purpose:
Specifies Address Resolution Protocol (ARP) table bucket size.

Values:
Default: 7

Display:
no -a or no -o arptab_bsiz

Change:
no -o arptab_bsiz=NewValue
Change is effective when the netinet kernel extension is loaded.

Diagnosis:
N/A

Tuning:
This is a load-time attribute and must be set in /etc/rc.net prior to the interfaces being defined.

Refer to:
SP System-Specific Tuning Recommendations

arptab_nb

Purpose:
Specifies the number of ARP table buckets.

Values:
Default: 25

Display:
no -a or no -o arptab_nb

Change:
no -o arptab_nb=NewValue
Change is effective when the netinet kernel extension is loaded.

Diagnosis:
N/A

Tuning:
This is a load-time attribute and must be set in /etc/rc.net prior to the interfaces being defined. Increase this value for systems that have a large number of clients or servers. The default provides for 25 x 7 = 175 ARP entries, but assumes an even task distribution.

Refer to:
SP System-Specific Tuning Recommendations

bcastping

Purpose:
Allows response to ICMP echo packets to the broadcast address.

Values:
Default: 0 (off); Range 0 or 1 (on)

Display:
no -a or no -o bcastping

Change:
no -o bcastping=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 run-time attribute.

clean_partial_conns

Purpose:
Specifies whether or not SYN (synchronizes the sequence number) attacks are being avoided.

Values:
Default: 0 (off); Range 0 or 1 (on)

Display:
no -a or no -o clean_partial_conns

Change:
no -o clean_partial_conns=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 option should be turned on for servers that need to protect against network attacks. If on, randomly removes partial connections to make room for new non-attack connections. This is a run-time attribute.

delayack

Purpose:
Delays acknowlegements (ACK) for certain TCP packets and attempts to "piggyback" them with the next packet sent instead.

Values:
Default: 0; Range: 0, 1, 2, 3

Display:
no -a or no -o delayack

Change:
no -o delayack=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 action will only be performed for connections whose destination port is specified in the list of the delayackports attribute. This can be used to increase performance when communicating with an HTTP server by reducing the total number of packets sent. The attribute can have one of four values:
0 No delays; normal operation
1 Delay the ACK for the server's SYN (Synchronizes the sequence numbers)
2 Delay the ACK for the server's FIN (Sender has reached the end of its byte stream)
3 Delay both the ACKs for the SYN and FIN

delayackports

Purpose:
Specifies the list of destination ports for which the operation defined by the delayack port option will be performed.

Values:
List of port numbers

Display:
no -a or no -o delayackports

Change:
no -o delayackports=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:
The attribute takes a list of up to ten ports, separated by commas and enclosed in curly braces. For example: no -o delayackports={80,30080}. To clear the list, set the option to {}.

directed_broadcast

Purpose:
Specifies whether to allow a directed broadcast to a gateway.

Values:
Default: 1 (on); Range: 0 or 1

Display:
no -a or no -o directed_broadcast

Change:
no -o directed_broadcast=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:
The value of 1 allows packets to be directed to a gateway to be broadcast on a network on the other side of the gateway. This is a run-time attribute.

extendednetstats

Purpose:
Enables more extensive statistics for network memory services.

Values:
Default: 0 (off); Range: 0 or 1 (on)

Display:
no -a or no -o extendednetstats

Change:
no -o extendednetstats=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:
The default for this attribute is 0, for off, because these extra statistics cause a reduction in system performance. If these statistics are desired, it is recommended that this attribute be set to 1 in /etc/rc.net, as early as possible in the boot process. This is important, because some components may use the memory services, before this attribute is enabled. Thus the in-use fields for the statistics might not be correct.

fasttimo

Purpose:
Allows you to set the millisecond delay for the TCP fast timeout timer. This timeout controls how often the system scans the TCP control blocks to send delayed acknowledgments.

Values:
Default: 200; Range: 50 to 200 milliseconds

Display:
no -a or no -o fasttimo

Change:
no -o fasttimo=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:
Reducing this timer value may improve performance with some non-IBM systems. However, this may also result in slightly increased system utilization.

icmpaddressmask

Purpose:
Specifies whether the system responds to an ICMP address mask request.

Values:
Default: 0; Range: 0 or 1

Display:
no -a or no -o icmpaddressmask

Change:
no -o icmpaddressmask=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:
If the default value 0 is set, the network silently ignores any ICMP address mask request that it receives. This is a run-time attribute.

ie5_old_multicast_mapping

Purpose:
Specifies IP multicasts on Token-Ring should be mapped to the broadcast address rather than a functional address when value 1 is used.

Values:
Default: 0 ; Range: 0 or 1

Display:
no -a or no -o ie5_old_multicast_mapping

Change:
no -o ie5_old_multicast_mapping=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 run-time attribute.

ifsize

Purpose:
Specifies the maximum number of network interface structures per interface.

Values:
Default: Number of interfaces in the system

Display:
no -a or no -o ifsize

Change:
no -o ifsize=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 load-time attribute. In operating system AIX 4.3, the /etc/rc.net script automatically determines the number of interfaces on the system and sets ifsize to that value. Therefore, there is no reason to alter this attribute.

Refer to:
Managing Tunable SP Parameters

inet_stack_size

Purpose:
Specifies size of inet interrupt stack table in kilobytes.

Values:
Default: 16

Display:
no -a or no -o inet_stack_size

Change:
no -o inet_stack_size=NewValue
Size can only be changed by adding no command to /etc/rc.net.

Diagnosis:
N/A

Tuning:
This is needed if you were running with unoptimized debug kernel or the netinet kernel extension. This is different from the pin more stack code (which is not configurable) because this is on interrupt. This attribute only needs to be changed if there is a system panic due to interrupt stack overflow.

ipforwarding

Purpose:
Specifies whether the kernel should forward packets.

Values:
Default: 0 (off); Range: 0 or 1 (1 enables forwarding)

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 run-time attribute. Set it to 1, if the system is acting as an IP router.

Refer to:
The traceroute Command

ipfragttl

Purpose:
Specifies the time to live for IP fragments in half-seconds.

Values:
Default: 60; 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:
Fragments dropped after timeout (netstat -p ip).

Tuning:
If value of IP: fragments dropped after timeout is nonzero, increasing ipfragttl may reduce retransmissions. This is a run-time attribute.

Refer to:
IP Layer

ipignoreredirects

Purpose:
Specifies whether to process redirects that are received.

Values:
Default: 0 (does redirects); Range: 0 or 1 (1 ignores redirects)

Display:
no -a or no -o ipignoreredirects

Change:
no -o ipignoreredirects=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 option only applies to AIX 4.2.1 or later. This is a run-time attribute.

ipqmaxlen

Purpose:
Specifies the number of received packets that can be queued on the IP protocol input queue.

Values:
Default: 150; Range: 150 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:
Examine ipintrq overflows (netstat -s) or use crash to access IP input queue overflow counter.

Tuning:
This is a load-time attribute. Increase size if system is using a lot of loopback sessions. Most operating system network drives call IP directly and do not use the IP queue. On these devices increasing ipqmaxlen has no effect.

Refer to:
IP Layer and IP Protocol Performance Tuning Recommendations

ipsendredirects

Purpose:
Specifies whether the kernel should send redirect signals.

Values:
Default: 1; Range: 0 or 1 (1 means send redirects; 0 means do not send redirects)

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:
This is a configuration decision with performance consequences. This is a run-time attribute.

ipsrcrouteforward

Purpose:
Specifies whether the system forwards source-routed packets.

Values:
Default: 1 ; Range 0 or 1

Display:
no -a or no -o ipsrcrouteforward

Change:
no -o ipsrcrouteforward=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:
The default value of 1 allows the forwarding of source-routed packets. A value of 0 causes all source-routed packets that are not at their destinations to be discarded. This attribute only applies to AIX 4.2.1 or later.

ipsrcrouterecv

Purpose:
Specifies whether the system accepts source-routed packets.

Values:
Default: 0; Range: 0 or 1

Display:
no -a or no -o ipsrcrouterecv

Change:
no -o ipsrcrouterecv=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:
The default value of 0 causes all source-routed packets destined for this system to be discarded. A value of 1 allows source-routed packets to be received. This attribute only applies to AIX 4.2.1 or later.

ipsrcroutesend

Purpose:
Specifies whether applications can send source-routed packets.

Values:
Default: 1; Range: 0 or 1

Display:
no -a or no -o ipsrcroutesend

Change:
no -o ipsrcroutesend=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:
The default value of 1 allows source-routed packets to be sent. A value of 0 causes setsockopt() to return an error if an application attempts to set the source routing option, and removes any source routing options from outgoing packets. This attribute only applies to AIX 4.2.1 or later.

ip6_defttl

Purpose:
Specifies the default hop count that is used for Internet Protocol Version 6 (IPv6) packets if no other hop count is specified.

Values:
Default: 64

Display:
no -a or no -o ip6_defttl

Change:
no -o ip6_defttl=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

ip6_prune

Purpose:
Specifies how often to check the IPv6 routing table for expired routes in seconds.

Values:
Default: 2

Display:
no -a or no -o ip6_prune

Change:
no -o ip6_prune=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

ip6forwarding

Purpose:
Specifies whether the kernel should forward IPv6 packets.

Values:
Default: 0; Range: 0 or 1

Display:
no -a or no -o ip6forwarding

Change:
no -o ip6forwarding=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:
The default value of 0 prevents forwarding of IPv6 packets when they are not for the local systems. A value of 1 enables forwarding. This is a run-time attribute.

ip6srcrouteforward

Purpose:
Specifies whether the system forwards source-routed IPv6 packets.

Values:
Default: 1; Range: 0 or 1

Display:
no -a or no -o ip6srcrouteforward

Change:
no -o ip6srcrouteforward=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:
The default value of 1 allows the forwarding of source-routed packets. A value of 0 causes all source-routed packets that are not at their destinations to be discarded.

llsleep_timeout

Purpose:
Specifies timeout value in seconds for link local timeouts (used when multi_homed=1)

Values:
Default: 3; Range: Postive values

Display:
no -a or no -o llsleep_timeout

Change:
no -o llsleep_timeout=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

main_if6

Purpose:
Specifies the interface to use for link local addresses. This is only used by autoconf6 to set up initial routes.

Values:
Default: 0

Display:
no -a or no -o main_if6

Change:
no -o main_if6=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

main_site6

Purpose:
Specifies the interface to use for site local address routing. This is only used if multi_homed is set to 3.

Values:
Default: 0

Display:
no -a or no -o main_site6

Change:
no -o main_site6=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

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:
In AIX 4.2 and later, if maxmbuf is greater than 0, the maxmbuf value is used regardless of the value of thewall. Prior to AIX 4.2, the upper limit on mbufs is the higher value of maxmbuf or thewall.

Refer to:
Tuning Network Memory

maxnip6q

Purpose:
Specifies the maximum number of IPv6 packet-reassembly queues.

Values:
Default: 20

Display:
no -a or no -o maxnip6q

Change:
no -o maxnip6q=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

maxttl

Purpose:
Specifies the time to live for Routing Information Protocol (RIP) packets in seconds.

Values:
Default: 255

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:
This is a run-time attribute.

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

multi_homed

Purpose:
Specifies the level of multi-homed IPv6 host support.

Values:
Default: 1; Range: 0, 1, 2, 3

Display:
no -a or no -o multi_homed

Change:
no -o multi_homed=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 will only be performed for connections whose destination port is specified in the list of the delayackports attribute. This can be used to increase performance when communicating with an HTTP server. The attribute can have one of four values:

 
0 - Indicates the original functionality in AIX 4.3.


1 - Indicates that link local addresses will be resolved by querying each interface for the link local address.
2 - Indicates that link local addresses will only be examined for the interface defined by main_if6.
3 - Indicates that link local addresses will only be examined for the interface defined by main_if6, and site local addresses will only be routed for the main_site6 interface.

nbc_limit

Purpose:
Specifies the total maximum amount of memory that can be used for the Network Buffer Cache (NBC) in Kbytes.

Values:
Default: derived from thewall

Display:
no -a or no -o nbc_limit

Change:
no -o nbc_limit=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:
When the cache grows to this limit, the least-used caches are flushed out of cache to make room for the new ones. This attribute only applies to AIX 4.3.2 or later. NBC is only used by the send_file() API and some Web servers that use the get engine in the kernel.

nbc_max_cache

Purpose:
Specifies the maximum size of the cache object allowed in the Network Buffer Cache (NBC) in bytes.

Values:
Default: 131072 (128K)

Display:
no -a or no -o nbc_max_cache

Change:
no -o no -o nbc_max_cache=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:
Data object bigger than this size is not be put in the NBC. This attribute only applies to AIX 4.3.2 or later. NBC is only used by the send_file() API and some Web servers that use the get engine in the kernel.

nbc_min_cache

Purpose:
Specifies the minimum size of the cache object allowed in the Network Buffer Cache (NBC) in bytes.

Values:
Default: 1 byte

Display:
no -a or no -o nbc_min_cache

Change:
no -o nbc_min_cache=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:
Data object smaller than this size is not be put in the NBC. This attribute only applies to Version 4.3.2 or later. NBC is only used by the send_file() API and some Web servers that use the get engine in the kernel.

nbc_pseg (AIX 4.3.3 and later)

Purpose:
Specifies the maximum number of private segments that can be created for the Network Buffer Cache (NBC).

Values:
Default: 0

Display:
no -a or no -o nbc_pseg

Change:
no -o nbc_pseg=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:
When this option is set to a nonzero value, data objects with size between the size specified in nbc_max_cache and the segment size (256 MB) will be cached in a private segment. Data objects bigger than the segment size will not be cached at all. When this many private segments exist in NBC, cache data in private segments may be flushed for new cache data so the number of private segments will not exceed the limit. When this option is set to 0, all cache in private segments will be flushed.

nbc_pseg_limit (AIX 4.3.3 and later)

Purpose:
Specifies the maximum total cached data size (KB) allowed in private segments in the Network Buffer Cache (NBC).

Values:
Default: 1/2 of RAM

Display:
no -a or no -o nbc_pseg_limit

Change:
no -o nbc_pseg_limit=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:
Because data cached in private segments will be pinned by the Network Buffer Cache, this option provides a control on the amount of pinned memory used for Network Buffer Cache in addition to the network buffers in global segments. When this limit is met, cache data in private segments may be flushed for new cache data so the total pinned memory size will not exceed the limit. When this option is set to 0, all cache in private segments will be flushed.

ndpqsize

Purpose:
Specifies the number of packets to hold waiting on completion of a Neighbor Discovery Protocol (NDP) entry (used by MTU Path Discovery).

Values:
Default: 50

Display:
no -a or no -o ndpqsize

Change:
no -o ndpqsize=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

ndpt_down

Purpose:
Specifies the time, in half-seconds, to hold down a Neighbor Discovery Protocol (NDP) entry.

Values:
Default: 3 (1.5 seconds)

Display:
no -a or no -o ndpt_down

Change:
no -o ndpt_down=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

ndpt_keep

Purpose:
Specifies the time, in half seconds, to keep a Neighbor Discovery Protocol (NDP) entry.

Values:
Default: 120 (60 seconds)

Display:
no -a or no -o ndpt_keep

Change:
no -o ndpt_keep=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

ndpt_mmaxtries

Purpose:
Specifies the maximum number of Multicast NDP packets to send.

Values:
Default: 3

Display:
no -a or no -o ndpt_mmaxtries

Change:
no -o no -o ndpt_mmaxtries=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

ndpt_probe

Purpose:
Specifies the time, in half-seconds, to delay before sending the first Neighbor Discovery Protocol (NDP) probe.

Values:
Default: 5 (2.5 seconds)

Display:
no -a or no -o ndpt_probe

Change:
no -o ndpt_probe=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

ndpt_reachable

Purpose:
Specifies the time, in half-seconds, to test if a Neighbor Discovery Protocol (NDP) entry is still valid.

Values:
Default: 30 (15 seconds)

Display:
no -a or no -o ndpt_reachable

Change:
no -o ndpt_reachable=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

ndpt_retrans

Purpose:
Specifies the time, in half-seconds, to wait before retransmitting a Neighbor Discovery Protocol (NDP) request.

Values:
Default: 1 (half second)

Display:
no -a or no -o ndpt_retrans

Change:
no -o ndpt_retrans=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

ndpt_umaxtries

Purpose:
Specifies the maximum number of Unicast NDP packets to send.

Values:
Default: 3

Display:
no -a or no -o ndpt_umaxtries

Change:
no -o ndpt_umaxtries=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

net_malloc_police

Purpose:
Specifies the size of the net_malloc and net_free trace buffers.

Values:
Default: 0

Display:
no -a or no -o net_malloc_police

Change:
no -o net_malloc_police=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:
If the value of this variable is non-zero, all net_malloc and net_free buffers will be traced in a kernel buffer and by system trace hook HKWD_NET_MALLOC. Additional error-checking will also be enabled. This includes checks for freeing a free buffer, alignment, and buffer overwrite. Enable this attribute only when investigating some network problem, because performance is affected negatively when turned on.

 
The default value is zero (policing off). Values of net_malloc_police larger than 1024 will allocate that many items in the kernel buffer for tracing. This is a run-time attribute.

Refer to:
The netstat Command

nonlocsrcroute

Purpose:
Tells the Internet Protocol that strictly source-routed packets may be addressed to hosts outside the local network.

Values:
Default: 0; 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:
A default value of 0 disallows addressing to outside hosts. The value of 1 allows packets to be addressed to outside hosts. Loosely source-routed packets are not affected by this attribute. This is a configuration decision with minimal performance consequences. This is a run-time attribute.

pmtu_default_age

Purpose:
Specifies the default amount of time (in minutes) before the path MTU value for UDP paths is checked for a lower value.

Values:
Default: 10

Display:
no -a or no -o pmtu_default_age

Change:
no -o pmtu_default_age=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:
A value of zero allows no aging. The default value is 10 minutes. The pmtu_default_age value can be overridden by UDP applications. This attribute only applies to AIX 4.2.1 or later. This is a run-time attribute.

pmtu_rediscover_interval

Purpose:
Specifies the default amount of time (in minutes) before the path MTU value for UDP and TCP paths are checked for a higher value.

Values:
Default: 30

Display:
no -a or no -o pmtu_rediscover_interval

Change:
no -o pmtu_rediscover_interval=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:
A value of 0 allows no path MTU rediscovery. The default value is 30 minutes. This attribute only applies to AIX 4.2.1 or later. This is a run-time attribute.

rec_que_size

Purpose:
Specifies the maximum number of receive 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 -a rec_que_size=NewValue
ifconfig interface_name hostname up
Cannot be changed while the interface is in use. Change is effective across boots.

Diagnosis:
N/A

Tuning:
Increase size.

Refer to:
Adapter Transmit and Receive Queue Tuning

rfc1122addrchk

Purpose:
Performs address validation as specified by RFC1122 ( Requirements for Internet Hosts-Communication Layers).

Values:
Default: 0; 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:
The default value of 0 does not perform address validation. A value of 1 performs address validation. This is a run-time attribute.

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:
no -a or no -o rfc1323
ISNO: lsattr -El interface or ifconfig interface

Change:
no -o rfc1323=NewValue
Change takes effect immediately only for new TCP connections (not existing connections). Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

 
ISNO: 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

route_expire

Purpose:
Specifies whether the route expires.

Values:
Default: 0; Range 0 to 1

Display:
no -a or no -o route_expire

Change:
no -o route_expire=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:
A value of 0 allows no route expiration, which is the default. Negative values are not allowed for this option. This attribute only applies to Version 4.2.1 or later. This is a run-time attribute.

Refer to:
Tuning TCP Maximum Segment Size

routerevalidate

Purpose:
Specifies that each connection's cached route should be revalidated each time a new route is added to the routing table. This will ensure that applications that keep the same connection open for long periods of time (for example, NFS) use the correct route after routing-table changes occur.

Values:
Default: 0; Range 0 to 1

Display:
no -a or no -o routerevalidate

Change:
no -o routerevalidate=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

Diagnosis:
If there is communication loss between HACMP nodes or between NFS client and server, routes may have been changed but the values in the cache are being used.

Tuning:
The default value of 0 does not revalidate the cached routes. Turning on this option may cause some performance degradation. Value should be set to 1 for HACMP. This is a run-time attribute.

rto_high

Purpose:
Specifies the TCP Retransmit timeout high value used in calculating factors and the maximum retransmittals allowable used in TCP data segment retransmittals.

Values:
Default: 64

Display:
no -a or no -o rto_high

Change:
no -o rto_high=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:
The rto_high attribute is the high factor. This is a load-time attribute.

rto_length

Purpose:
Specifies the TCP Retransmit timeout length value used in calculating factors and the maximum retransmittals allowable used in TCP data segment retransmittals.

Values:
Default: 13

Display:
no -a or no -o rto_length

Change:
no -o rto_length=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:
The rto_length attribute is the total number of time segments. This is a load-time attribute.

rto_limit

Purpose:
Specifies the TCP Retransmit timeout limit value used in calculating factors and the maximum retransmittals allowable used in TCP data segment retransmittals.

Values:
Default: 7

Display:
no -a or no -o rto_limit

Change:
no -o rto_limit=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:
The rto_limit attribute is the number of time segments from rto_low to rto_high. This is a load-time attribute.

rto_low

Purpose:
Specifies the TCP Retransmit timeout low value used in calculating factors and the maximum retransmittals allowable used in TCP data segment retransmittals.

Values:
Default: 1

Display:
no -a or no -o rto_low

Change:
no -o rto_low=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:
The rto_low attribute is the low factor. This is a load-time attribute.

sack (AIX 4.3.3 and later)

Purpose:
Specifies if Selective Acknowledgment is on.

Values:
Default: 0 (off); Range: 0 or 1

Display:
no -a or no -o sack

Change:
no -o sack=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:
Normal TCP has to retransmit all packets after a dropped packet. With large window sizes, this can result in lost performance if many packets are dropped. Selective Ack enables code to selectively retransmit the lost packet(s). If there are a lot of retransmits of fragments and the receive buffer sizes are large, then it might be beneficial to turn this attribute on. This is a TCP negotiated option, so it must be supported on both endpoints before it will be used.

sb_max

Purpose:
Specifies the maximum buffer size allowed for a TCP and UDP socket. Limits setsockopt(), udp_sendspace, udp_recvspace, tcp_sendspace, and tcp_recvspace.

Values:
Default: 1048576 bytes

Display:
no -a or no -o sb_max

Change:
no -o sb_max=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 size, preferably to multiple of 4096. Should be approximately two to four times the largest socket buffer limit. This is a run-time attribute.

Refer to:
TCP Socket Buffer Tuning and Tuning Other Layers to Improve NFS Performance

send_file_duration

Purpose:
Specifies the cache validation duration for all the file objects that the system call send_file() accessed in the Network Buffer Cache (in seconds).

Values:
Default: 300 (5 minutes)

Display:
no -a or no -o send_file_duration

Change:
no -o send_file_duration=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:
A value of 0 means that the cache will be validated for every access. This attribute only applies to AIX 4.3.2 or later.

site6_index

Purpose:
Specifies the maximum interface number for site local routing.

Values:
Default: 0

Display:
no -a or no -o site6_index

Change:
no -o site6_index=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

sockthresh

Purpose:
Specifies the maximum amount of network memory that can be allocated for sockets. Used to prevent new sockets or TCP connections from exhausting all MBUF memory and reserve the remaining memory for the existing sockets or TCP connections.

Values:
Default: 85 percent

Display:
no -a or no -o sockthresh

Change:
no -o sockthresh=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:
When the total amount of memory allocated by the net_malloc() subroutine reaches this threshold, the socket() and socketpair() system calls fail with an error of ENOBUFS. Incoming connection requests are silently discarded. Existing sockets can continue to use additional memory. The sockthresh attribute represents a percentage of the thewall attribute, with possible values of 1 to 100 and a default of 85. This is a run-time attribute. This attribute only applies to AIX 4.3.1 or later.

Refer to:
Socket Layer

somaxconn

Purpose:
Specifies the maximum listen backlog.

Values:
Default: 1024 connections

Display:
no -a or no -o somaxconn

Change:
no -o somaxconn=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 run-time attribute. This attribute only applies to Versions 4.1.5, 4.2 or later. Increase on busy Web servers to handle peak connection rates.

subnetsarelocal

Purpose:
Specifies whether 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 attribute is used by the in_localaddress() subroutine. The default value of 1 specifies that addresses that match the local network mask are local. If the value is 0, only addresses matching the local subnetwork are local.

 
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. This is a run-time attribute.

Refer to:
Tuning TCP Maximum Segment Size

tcp_ephemeral_high

Purpose:
Specifies the largest port number to allocate for TCP ephemeral ports.

Values:
Default: 65535; Range: 16384 to 65535

Display:
no -a or no -o tcp_ephemeral_high

Change:
no -o tcp_ephemeral_high=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:
The number of ephemeral sockets is determined by tcp_ephemeral_high minus tcp_ephemeral_low. For maximum number of ephemeral sockets, set tcp_ephemeral_high to 65535 and tcp_ephemeral_low to 1024.

Refer to:
Socket Layer

tcp_ephemeral_low

Purpose:
Specifies the smallest port number to allocate for TCP ephemeral ports.

Values:
Default: 32768; Range: 1024 to tcp_ephemeral_high-1

Display:
no -a or no -o tcp_ephemeral_low

Change:
no -o tcp_ephemeral_low=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:
The number of ephemeral sockets is determined by tcp_ephemeral_high minus tcp_ephemeral_low. For maximum number of ephemeral sockets, set tcp_ephemeral_high to 65535 and tcp_ephemeral_low to 1024.

Refer to:
Socket Layer

tcp_keepidle

Purpose:
Specifies the length of time to keep an idle TCP connection active, measured in half-seconds.

Values:
Default: 14400 (2 hours)

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. This is a run-time attribute.

tcp_keepinit

Purpose:
Sets the initial timeout value for a TCP connection in half-seconds.

Values:
Default: 150 (75 seconds)

Display:
no -a or no -o tcp_keepinit

Change:
no -o tcp_keepinit=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 run-time attribute.

tcp_keepintvl

Purpose:
Specifies the interval, measured in half-seconds, between packets sent to validate the TCP connection.

Values:
Default: 150 (75 seconds)

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. This is a run-time attribute.

tcp_mssdflt

Purpose:
Default maximum segment size used in communicating with remote networks.

Values:
Default: 512 bytes

Display:
no -a or no -o tcp_mssdflt
ISNO: lsattr -El interface or ifconfig interface

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

 
ISNO: 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

tcp_ndebug

Purpose:
Specifies the number of tcp_debug structures.

Values:
Default: 100

Display:
no -a or no -o tcp_ndebug

Change:
no -o tcp_ndebug=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 run-time attribute.

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)

tcp_pmtu_discover

Purpose:
Enables or disables path MTU discovery for TCP applications.

Values:
Default: 0, in AIX 4.3.3 it is 1

Display:
no -a or no -o tcp_pmtu_discover

Change:
no -o tcp_pmtu_discover=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:
A value of 0 disables path MTU discovery for TCP applications, while a value of 1 enables it. This attribute only applies to AIX 4.2.1 or later. This is a run-time attribute.

Refer to:
Tuning TCP Maximum Segment Size

tcp_recvspace

Purpose:
Specifies the system default socket buffer size for receiving data. This affects the window size used by TCP.

Values:
Default: 4096 bytes (16384 set by /etc/rc.net)

Display:
no -a or no -o tcp_recvspace
ISNO: lsattr -El interface or ifconfig interface

Change:
no -o tcp_recvspace=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

 
ISNO: 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 4096. However, a value of 16,384 is set automatically by the rc.net file or the rc.bsdnet file (if Berkeley-style configuration is issued).

 
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 run-time 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

tcp_sendspace

Purpose:
Specifies the system default socket buffer size for sending data.

Values:
Default: 4096 bytes (16384 set /etc/rc.net)

Display:
no -a or no -o tcp_sendspace
ISNO: lsattr -El interface or ifconfig interface

Change:
no -o tcp_sendspace=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding no command to /etc/rc.net.

 
ISNO: 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 4096; however, a value of 16,384 is set automatically by the rc.net file or the rc.bsdnet file (if Berkeley-style configuration is issued).
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 run-time 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

tcp_timewait

Purpose:
The tcp_timewait option is used to configure how long connections are kept in the timewait state in 15-second intervals.

Values:
Default: 1; Range: 1 to 5

Display:
no -a or no -o tcp_timewait

Change:
no -o tcp_timewait=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:
Increasing this value will degrade performance of Web servers or applications that open and close a lot of TCP connections.

tcp_ttl

Purpose:
Specifies the time to live for TCP packets.

Values:
Default: 60 ticks (100 ticks per minute)

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. This is a run-time attribute.

thewall

Purpose:
Specifies the maximum amount of memory, in kilobytes, that is allocated to the memory pool.

Values:
Default: In operating system 4.3.2 and later: 1/2 of RAM or 1 GB (whichever is smaller). Systems that are not Common Hardware Reference Platform (CHRP) are limited to 256 MB.

Display:
no -a or no -o thewall

Change:
no -o thewall=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:
In AIX 4.2.1. and earlier, the default value is 1/8 of real memory or 65536 (64 megabytes), whichever is smaller. In AIX 4.3, the default value is 1/8 of real memory or 131072 (128 megabytes) whichever is smaller. In AIX 4.3.1 and later, the default value is 1/2 of real memory or 131072 (128 megabytes) whichever is smaller. This is a run-time attribute.

Refer to:
Tuning mbuf Pool Performance

threads

Purpose:
Enabling the dog threads feature will allow interface drivers to queue the incomming packet to a thread and the thread will handle calling IP, TCP, and the socket code.

Values:
Default: Not set

Display:
N/A

Change:
ifconfig interface_name thread or
ifconfig interface_name hostname up thread
Change takes effect immediately. Change is effective until next boot.

Diagnosis:
N/A

Tuning:
This feature is most likely to improve performance when there is high input packet rate and more CPUs than adapters.

Refer to:
Adapter Transmit and Receive Queue Tuning

udp_ephemeral_high

Purpose:
Specifies the largest port number to allocate for UDP ephemeral ports.

Values:
Default: 65535

Display:
no -a or no -o udp_ephemeral_high

Change:
no -o udp_ephemeral_high=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:
Socket Layer

udp_ephemeral_low

Purpose:
Specifies the smallest port number to allocate for UDP ephemeral ports.

Values:
Default: 32768

Display:
no -a or no -o udp_ephemeral_low

Change:
no -o udp_ephemeral_low=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:
Socket Layer

udp_pmtu_discover

Purpose:
Enables or disables path MTU discovery for UDP applications.

Values:
Default: 0, in AIX 4.3.3 it is 1

Display:
no -a or no -o udp_pmtu_discover

Change:
no -o udp_pmtu_discover=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:
UDP applications must be specifically written to use path MTU discovery. A value of 0 disables the feature, while a value of 1 enables it. The default value is 0. This attribute only applies to AIX 4.2.1 or later. This is a run-time attribute.

udp_recvspace

Purpose:
Specifies the system default socket-buffer size for receiving UDP data.

Values:
Default: 41600 bytes

Display:
no -a or no -o udp_recvspace

Change:
no -o udp_recvspace=NewValue
Change takes effect immediately. 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:
The udp_recvspace attribute must specify a socket buffer size less than or equal to the setting of the sb_max attribute. Increase size, preferably to multiple of 4096. This is a run-time attribute.

Refer to:
UDP Socket Buffer Tuning

udp_sendspace

Purpose:
Specifies the system default socket-buffer size for sending UDP data.

Values:
Default: 9216 bytes

Display:
no -a or no -o udp_sendspace

Change:
no -o udp_sendspace=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:
The udp_sendspace attribute must specify a socket buffer size less than or equal to the setting of the sb_max attribute. Increase size, preferably to multiple of 4096. This is a run-time attribute.

Refer to:
UDP Socket Buffer Tuning

udp_ttl

Purpose:
Specifies the time to live for UDP packets.

Values:
Default: 30 seconds

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:
This is a run-time attribute.

udpcksum

Purpose:
Allows UDP checksum to be turned on/off.

Values:
Default: 1

Display:
no -a or no -o udpcksum

Change:
no -o udpcksum=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:
A value of 0 turns it off; while a value of 1 turns it on. This is a run-time attribute.

use_isno (AIX 4.3.3 and later)

Purpose:
Allows per interface tuning options.

Values:
Default: 1 (on); Range: 0 or 1

Display:
no -a or no -o use_isno

Change:
no -o use_isno=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:
A value of 1 means it is on, 0 is off. If the TCP tunable parameters per interface (tunable through SMIT or the chdev command) have been set, they will override the TCP global values if use_isno is set to 1. Application can still override all of these with the setsockopt() subroutine.

Refer to:
Interface-Specific Network Options (ISNO)

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

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?

nfs_allow_all_signals

Purpose:
Specifies that the NFS server adhere to signal handling requirements for blocked locks for the UNIX 95/98 test suites.

Values:
Default: 0; Range: 0 to 1

Display:
nfso -a or nfso -o nfs_allow_all_signals

Change:
nfso -o nfs_allow_all_signals=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:
A value of 1 turns nfs_allow_all_signals on, and a value of 0 turns it off.

nfs_device_specific_bufs (AIX 4.2.1 and later)

Purpose:
This option allows the NFS server to use memory allocations from network devices if the network device supports such a feature.

Values:
Default: 1; Range: 0 or 1

Display:
nfso -a or nfso -o nfs_device_specific_bufs

Change:
nfso -o nfs_device_specific_bufs=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:
Use of these special memory allocations by the NFS server can positively affect the overall performance of the NFS server. The default of 1 means the NFS server is allowed to use the special network device memory allocations. If the value of 0 is used, the NFS server will use the traditional memory allocations for its processing of NFS client requests. These are buffers managed by a network interface that result in improved performance (over regular mbufs) because no setup for DMA is required on these. Two adapters that support this include the Micro Channel ATM adapter and the SP2 switch adapter.

nfs_duplicate_cache_size (AIX 4.1, Version 4.2.0)

Purpose:
Sets the size of the NFS RPC duplicate cache on the server.

Values:
Default: 1000; Range: 1 to 10000

Display:
nfso -a or nfso -o nfs_duplicate_cache_size

Change:
nfso -o nfs_duplicate_cache_size=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:
The duplicate cache size cannot be decreased. The duplicate cache size should be increased for servers that have a high throughput capability. The duplicate cache is used to allow the server to correctly respond to NFS client retransmissions. If the server flushes this cache before the client is able to retransmit, then the server may respond incorrectly. Therefore, if the server can process 1000 operations before a client retransmits, then the duplicate cache size will need to be increased.

 
Calculate the number of NFS operations that are being received per second at the NFS server and multiply this by 4. This will produce a duplicate cache size that should be sufficient to allow correct response from the NFS server. The operations that are affected by the duplicate cache are the following: setattr(), write(), create(), remove(), rename(), link(), symlink(), mkdir(), rmdir().

nfs_dynamic_retrans (AIX 4.1 and later)

Purpose:
Specifies whether the NFS client should use a dynamic retransmission algorithm to decide when to resend NFS requests to the server.

Values:
Default: 1; Range: 0 or 1

Display:
nfso -a or nfso -o nfs_dynamic_retrans

Change:
nfso -o nfs_dynamic_retrans=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:
If this function is turned on, the timeo parameter is only used in the first retransmission. With this parameter set to 1, the NFS client will attempt to adjust its timeout behavior based on past NFS server response.

 
This allows for a floating timeout value along with adjusting the transfer sizes used. All of this is done based on an accumulative history of the NFS server's response time. In most cases, this parameter does not need to be adjusted. There are some instances where the straightforward timeout behavior is desired for the NFS client. In these cases, the value should be set to 0 before mounting file systems.

Refer to:
Tuning to Avoid Retransmits

nfs_gather_threshold

Purpose:
Sets the minimum size of write requests for which write gathering is done.

Values:
Default: 4096; Useful Range: 512 to 8193

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. Permanent change is made by adding nfso command to /etc/rc.nfs.

Tuning:
One of the following two situations exists:
(1) Delays are observed in responding to RPC requests, particularly those where the client is exclusively doing non-sequential writes or the files being written are being written with file locks held on the client.
(2) Clients are writing with write sizes < 4096 and write-gather is not working. If write-gather is to be disabled, change the nfs_gather_threshold to a value greater than the largest possible write. For AIX Version 4 running NFS Version 2, this value is 8192. Changing the value to 8193 disables write gather. Use this for the situation described above in scenario (1). If write gather is being bypassed due to a small write size, say 1024, change the write gather parameter to gather smaller writes; for example, set to 1024.

nfs_iopace_pages (AIX 4.1)

Purpose:
Specifies the number of NFS file pages that are scheduled to be written back to the server through the VMM at one time. This I/O scheduling control occurs on close of a file and when the system invokes the syncd daemon.

Values:
Default: 32 (before AIX 4.2.1); Range: 1 to 65536; Default is 0 in 4.2.1 and later releases

Display:
nfso -a or nfso -o nfs_iopace_pages

Change:
nfso -o nfs_iopace_pages=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:
When an application writes a large file to an NFS mounted filesystem, that file data is written to the NFS server when the file is closed. In some cases, the resource it takes to write that file to the server may prevent other NFS file I/O from occurring. This parameter limits the number of 4k pages written to the server to the value of nfs_iopace_pages. The NFS client will schedule nfs_iopace_pages for writing to the server and then will wait for these to complete before scheduling the next batch of pages. The default value will usually be sufficient for most environments. Decreased the values if there are large amounts of contention for NFS client resources. If there is low contention, the value can be increased. In AIX 4.2.1 and later, if nfs_iopace_pages=0, then the number of pages written by the syncd daemon at one time is as follows:
MAX ((filesize/8)-1, 32)

.

nfs_max_connections

Purpose:
Specifies the maximum number of TCP connections allowed into the server.

Values:
Default: 0 (indicates no limit)

Display:
nfso -a or nfso -o nfs_max_connections

Change:
nfso -o nfs_max_connections=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:
Limits number of connections into the server in order to reduce load.

Refer to:
Tuning Other Layers to Improve NFS Performance

nfs_max_read_size (AIX 4.3.1 and later)

Purpose:
Allows the system administrator to control the NFS RPC sizes at the server.

Values:
Default: 32678; Range: 512 to 65536

Display:
nfso -a or nfso -o nfs_max_read_size

Change:
nfso -o nfs_max_read_size=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis:
Useful when all clients need to have changes in the read/write sizes, and it is impractical to change the clients.

Tuning:
Default means to use the values used by the client mount. This may be required to reduce the V3 read/write sizes when the mounts cannot be manipulated directly on the clients, in particular during NIM installations on networks where the network is dropping packets with the default 32K read/write sizes. In that case, set the maximum size to a smaller size that works on the network. It can also be useful where network devices are dropping packets and a generic change is desired for communications with the server.

nfs_max_threads (AIX 4.2.1 and later)

Purpose:
Specifies the maximum number of NFS server threads that are created to service incoming NFS requests.

Values:
Default: 3891; Range: 0 to 3891

Display:
nfso -a or nfso -o nfs_max_threads

Change:
nfso -o nfs_max_threads=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis:
With AIX 4.2.1, the NFS server is multithreaded. The NFS server threads are created as demand increases for the NFS server. When the NFS server threads become idle, they will exit. This allows the server to adapt to the needs of the NFS clients. The nfs_max_threads parameter is the maximum number of threads that can be created.

Tuning:
In general, it does not detract from overall system performance to have the maximum set to something very large because the NFS server will create threads as needed. However, this assumes that NFS-serving is the primary machine purpose. If the desire is to share the system with other activities, then the maximum number of threads may need to be set low. The maximum number can also be specified as a parameter to the nfsd daemon.

Refer to:
How Many biod and nfsd Daemons Are Needed?

nfs_max_write_size (AIX 4.3.1 and later)

Purpose:
Allows the system administrator to control the NFS RPC sizes at the server.

Values:
Default: 32678; Range: 512 to 65536

Display:
nfso -a or nfso -o nfs_max_write_size

Change:
nfso -o nfs_max_write_size=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis:
Useful when all clients need to have changes in the read/write sizes, and it is impractical to change the clients.

Tuning:
Default means to use the values used by the client mount. This may be required to reduce the V3 read/write sizes when the mounts cannot be manipulated directly on the clients, in particular during NIM installations on networks where the network is dropping packets with the default 32 K read/write sizes. In that case, set the maximum size to a smaller size that works on the network. It can also be useful where network devices are dropping packets and a generic change is desired for communications with the server.

nfs_repeat_messages (AIX Version 4)

Purpose:
Checks for duplicate NFS messages. This option is used to avoid displaying duplicate NFS messages.

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. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis:
N/A

Tuning:
Tuning this parameter does not affect performance.

nfs_rfc1323 (AIX 4.3)

Purpose:
Enables very large TCP window size negotiation (greater than 65535 bytes) to occur between systems.

Values:
Default: 0; Range: 0 or 1

Display:
nfso -a or nfso -o nfs_rfc1323

Change:
nfso -o nfs_rfc1323=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:
If using the TCP transport between NFS client and server, and both systems support it, this allows the systems to negotiate a TCP window size in a way that will allow more data to be 'in-flight' between the client and server. This increases the throughput potential between client and server. Unlike the rfc1323 option of the no command, this only affects NFS and not other applications in the system. Value of 0 means this is disabled, and value of 1 means it is enabled. If the no command parameter rfc1323 is already set, this NFS option does not need to be set.

nfs_server_base_priority (AIX 4.1 and later)

Purpose:
Sets the base priority of nfsd daemons.

Values:
Default: 0 (priority 60); Range: 31 to 126

Display:
nfso -a or nfso -o nfs_server_base_priority

Change:
nfso -o nfs_server_base_priority=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:
By default, the nfsd daemons run with a floating process priority. Therefore, as they increase their cumulative CPU time, their priority will change. This parameter can be used to set a static parameter for the nfsd daemons. The value of 0 represents the floating priority (default). Other values within the acceptable range will be used to set the priority of the nfsd daemon when an NFS request is received at the server.

 
This option can be used if the NFS server is overloading the system (lowering or making the nfsd daemon less favored). It can also be used if you want the nfsd daemons be one of the most favored processes on the server. Use caution when setting the parameter because it can render the system almost unusable by other processes. This situation can occur if the NFS server is very busy and will essentially lock out other processes from having run time on the server.

nfs_server_clread (AIX 4.2.1 and later)

Purpose:
This option allows the NFS server to be very aggressive about the reading of a file. The NFS server can only respond to the specific NFS-read request from the NFS client. However, the NFS server can read data in the file which exists immediately after the current read request. This is normally referred to as read-ahead. The NFS server does read-ahead by default.

Values:
Default: 1; Range: 0 or 1

Display:
nfso -a or nfso -o nfs_server_clread

Change:
nfso -o nfs_server_clread=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis:
May be useful in cases where server memory is low and too much disk-to-memory activity is occuring.

Tuning:
With the nfs_server_clread option enabled, the NFS server becomes very aggressive about doing read-ahead for the NFS client. If value is 1, then aggressive read-ahead is done; If value is 0, normal system default read-ahead methods are used.

 
"Normal" system read-ahead is controlled by VMM. In AIX 4.2.1, the more aggressive top-half JFS read-ahead was introduced. This mechanism is less susceptible to read-ahead breaking down due to out-of-order requests (which are typical in the NFS server case). When the mechanism is activated, it will read an entire cluster (128 KB, the LVM logical track group size).

nfs_setattr_error (AIX 4.2.1 and later)

Purpose:
When enabled, NFS server ignores setattr requests that are not valid.

Values:
Default: 0; Range: 0 or 1; Value of 1 means enabled, 0 means disabled

Display:
nfso -a or nfso -o nfs_setattr_error

Change:
nfso -o nfs_setattr_error=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 option is provided for certain PC applications.Tuning this parameter does not affect performance.

nfs_socketsize (AIX 4.1 and later)

Purpose:
Sets the queue size of the NFS server UDP socket.

Values:
Default: 60000; Practical Range: 60000 to 204800

Display:
nfso -a or nfso -o nfs_socketsize

Change:
nfso -o nfs_socketsize=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:
Increase the size of the nfs_socketsize variable when netstat reports packets dropped due to full socket buffers for UDP, and increasing the number of nfsd daemons has not helped.

Refer to:
Increasing NFS Socket Buffer Size

nfs_tcp_duplicate_cache_size (AIX 4.2.1 and later)

Purpose:
Specifies the number of entries to store in the NFS server's duplicate cache for the TCP network transport.

Values:
Default: 1000; Range: 1 to 10000

Display:
nfso -a or nfso -o nfs_tcp_duplicate_cache_size

Change:
nfso -o nfs_tcp_duplicate_cache_size=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:
The duplicate cache size cannot be decreased. Increase the duplicate cache size for servers that have a high throughput capability. The duplicate cache is used to allow the server to correctly respond to NFS client retransmissions. If the server flushes this cache before the client is able to retransmit, then the server may respond incorrectly. Therefore, if the server can process 1000 operations before a client retransmits, the duplicate cache size must be increased.

 
Calculate the number of NFS operations that are being received per second at the NFS server and multiply this by 4. The result is a duplicate cache size that should be sufficient to allow correct response from the NFS server. The operations that are affected by the duplicate cache are the following: setattr(), write(), create(), remove(), rename(), link(), symlink(), mkdir(), rmdir().

nfs_tcp_socketsize (AIX 4.2.1 and later)

Purpose:
Sets the queue size of the NFS server TCP socket. The queue size is specified in number of bytes. The TCP socket is used for receiving the NFS client requests and can be adjusted so that the NFS server is less likely to drop packets under a heavy load. The value of the nfs_tcp_socketsize option must be less than the sb_max option, which can be manipulated by the no command.

Values:
Default: 60000

Display:
nfso -a or nfso -o nfs_tcp_socketsize

Change:
nfso -o nfs_tcp_socketsize=NewValue
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding nfso command to /etc/rc.nfs.

Diagnosis:
Packets dropped when examining the output of the command netstat -s -p tcp.

Tuning:
This option reserves, but does not allocate, memory for use by the send and receive socket buffers of the socket. Do not set the nfs_tcp_socketsize value to less than 60,000. Large or busy servers should have larger values until TCP NFS traffic shows no packets dropped from the output of the netstat -s -p tcp command.

Refer to:
Tuning Other Layers to Improve NFS Performance

nfs_udp_duplicate_cache_size (AIX 4.2.1 and later)

Purpose:
Specifies the number of entries to store in the NFS server's duplicate cache for the UDP network transport.

Values:
Default: 1000; Range: 1 to 10000

Display:
nfso -a or nfso -o nfs_udp_duplicate_cache_size

Change:
nfso -o nfs_udp_duplicate_cache_size=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:
The duplicate cache size cannot be decreased. Increase the duplicate cache size for servers that have a high throughput capability. The duplicate cache is used to allow the server to correctly respond to NFS client retransmissions. If the server flushes this cache before the client is able to retransmit, then the server may respond incorrectly. Therefore, if the server can process 1000 operations before a client retransmits, the duplicate cache size must be increased.

 
Calculate the number of NFS operations that are being received per second at the NFS server and multiply this by 4. The result is a duplicate cache size that should be sufficient to allow correct response from the NFS server. The operations that are affected by the duplicate cache are the following: setattr(), write(), create(), remove(), rename(), link(), symlink(), mkdir(), rmdir().

nfs_use_reserved_ports (AIX 4.2.1 and later)

Purpose:
Specifies using nonreserved IP port number.

Values:
Default: 0; Range: 0 or 1

Display:
nfso -a or nfso -o nfs_use_reserved_ports

Change:
nfso -o nfs_use_reserved_ports=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:
Value of 0 will use nonreserved IP port number when the NFS client communicates with the NFS server.

nsfd Count

Purpose:
Number of nfsd processes available to handle NFS requests on a server.

Values:
Default: 8; Range: 1 to any positive integer

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:
Use 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?

portcheck

Purpose:
Checks whether an NFS request originated from a privileged port.

Values:
Default: 0; Range: 0 or 1

Display:
nfso -a or nfso -o portcheck

Change:
nfso -o portcheck=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:
Value of 0 disables the port-checking that is done by the NFS server. A value of 1 directs the NFS server to do port checking on the incoming NFS requests. This is a configuration decision with minimal performance consequences.

udpchecksum

Purpose:
Turns on or off the generation of checksums on NFS UDP packets.

Values:
Default: 1; Range: 0 or 1

Display:
nfso -a or nfso -o udpchecksum

Change:
nfso -o udpchecksum=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:
Make sure this value is set to on in any network where packet corruption might occur. Slight performance gains can be realized by turning it off, but at the expense of increased chance of data corruption.

Refer to:
Tuning Other Layers to Improve NFS Performance

Streams Tunable Attributes

The following streams tunable attributes only apply for AIX 4.2 or later.

lowthresh

Purpose:
Specifies the maximum number of bytes that can be allocated using the allocb() call for the BPRI_LO priority.

Values:
Default: 90 (90 percent of thewall)

Display:
no -a or no -o lowthresh

Change:
no -o lowthresh=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:
When the total amount of memory allocated by the net_malloc() call reaches this threshold, then the allocb() request for the BPRI_LO priority returns 0. The lowthresh attribute represents a percentage of the thewall attribute, and you can set its value from 0 to 100. This is a run-time attribute.

medthresh

Purpose:
Specifies the maximum number of bytes that can be allocated using the allocb() call for the BPRI_MED priority.

Values:
Default: 95 (95 percent of thewall)

Display:
no -a or no -o medthresh

Change:
no -o medthresh=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:
When the total amount of memory allocated by the net_malloc() call reaches this threshold, then the allocb() request for the BPRI_MED priority returns 0. The medthresh attribute represents a percentage of the thewall attribute, and you can set its value from 0 to 100. This is a run-time attribute.

nstrpush

Purpose:
Specifies the maximum number (should be at least 8) of modules that you can push onto a single stream.

Values:
Default: 8

Display:
no -a or no -o nstrpush

Change:
no -o nstrpush=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 load-time attribute.

psebufcalls

Purpose:
Specifies the maximum number of bufcalls to allocate by streams.

Values:
Default: 20

Display:
no -a or no -o psebufcalls

Change:
no -o psebufcalls=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:
The stream subsystem allocates certain number of bufcall structures at initialization. When the allocb() call fails, the user can register their requests for the bufcall() call. You cannot lower this value until the system reboots, at which time it returns to its default value. This is a run-time attribute.

psecache

Purpose:
Controls the number of stream buffers.

Values:
Default: 1

Display:
no -a or no -o psecache

Change:
no -o psecache=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

pseintrstack

Purpose:
Specifies the maximum size of the interrupt stack allowed by streams while running in the offlevel.

Values:
Default: 0x3000 (decmal 12288)

Display:
no -a or no -o pseintrstack

Change:
no -o pseintrstack=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:
When a process running other than INTBASE level enters into a stream, it occasionally encounters a stack overflow problem because the interrupt stack size is too small. Setting this attribute correctly reduces the chances of stack overflow problems. This is a load-time attribute.

psetimers

Purpose:
Specifies the maximum number of timers to allocate by streams.

Values:
Default: 20

Display:
no -a or no -o psetimers

Change:
no -o psetimers=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:
The stream subsystem allocates a certain number of timer structures at initialization, so that the streams driver or module can register their timeout() calls. You cannot lower this value until the system reboots, at which time it returns to its default value. This is a run-time attribute.

strctlsz

Purpose:
Specifies the maximum number of bytes of information that a single system call can pass to a stream to place into the control part of a message (in an M_PROTO or M_PCPROTO block).

Values:
Default: 1024

Display:
no -a or no -o strctlsz

Change:
no -o strctlsz=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:
A putmsg() call with a control part exceeding this size will fail with ERANGE. This is a run-time attribute.

strmsgsz

Purpose:
Specifies the maximum number of bytes of information that a single system call can pass to a stream to place into the data part of a message (in M_DATA blocks).

Values:
Default: 1024

Display:
no -a or no -o strmsgsz

Change:
no -o strmsgsz=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:
Any write() call exceeding this size is broken into multiple messages. A putmsg() call with a data part exceeding this size will fail with ERANGE. This is a run-time attribute.

strthresh

Purpose:
Specifies the maximum number of bytes that streams are normally allowed to allocate.

Values:
Default: depends on thewall

Display:
no -a or no -o strthresh

Change:
no -o strthresh=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:
When the threshold is exceeded, it does not allow users without the appropriate privilege to open streams, push modules, or write to streams devices, and returns ENOSR. The threshold applies only to output side and does not affect data coming into the system (for example, the console continues to work correctly). A value of zero means that there is no threshold. The strthresh attribute represents a percentage of the thewall attribute, and you can set its value from 0 to 100. The thewall attribute indicates the maximum number of bytes that can be allocated by streams and sockets using the net_malloc() call. When you change thewall attribute, the threshold is updated accordingly.

Refer to:
Tuning Network Memory

strturncnt

Purpose:
Specifies the maximum number of requests handled by the current running thread for Module- or Elsewhere-level streams synchronization.

Values:
Default: 15

Display:
no -a or no -o strturncnt

Change:
no -o strturncnt=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:
With Module-level synchronization, only one thread can run in the module at any time, and all other threads which try to acquire the same module will enqueue their requests and exit. After the current running thread completes its work, it dequeues all the previously enqueued requests one by one and invokes them. If there is a large number of requests enqueued in the list, then the current running thread has to serve everyone and will always be busy serving others and "starves" itself. To avoid this situation the current running thread serves only the strturncnt number of threads, following that, a separate kernel thread wakes up and invokes all the pending requests. This is a run-time attribute.


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