Saturday, March 31, 2012

IBM AIX: TCP connections results in delayed acknowledgements (ACK) and tcp_nodelayack setting

 

If you are observing slow performance and see a delayed ACK response from an application running on AIX replying back, then you might be seeing the negative impact of Nagle algorithm ( more).

By default, AIX has a feature called "delayed acknowledgement" enabled in order to improve performance for some network traffic, such as large chunks of data.
This feature is controlled by the AIX setting "tcp_nodelayack" which is set to 0 by default:
tcp_nodelayack=0

If you change the default "tcp_nodelayack" option to enabled (set tcp_nodelayack=1) , it prompts TCP to send an immediate acknowledgement, rather than the default 200 ms delay.

Sending an immediate acknowledgement might cause a few more ACKs on the network, but in some cases with some application generally when sending small messages back and forth, it may greatly improve performance.

How to check the current setting for your system:
$> /usr/sbin/no -o tcp_nodelayack

How to change to enable immediate acknowledgement:
$>/usr/sbin/no -o tcp_nodelayack=1

Note: To make the change persistent across reboots use “-p” flag.

 

More Information:

  1. IC70828: SLOW TCP/IP CONNECTION FROM TPC TO EMC CIMOM

  2. EMC / AIX also recommends setting this parameter (EMC CLARiiON iSCSI ServerSetup Guide for AIX)

For maximum performance, IBM recommends that you enable rfc1323, and set tcp_recvspace and tcp_sendspace to appropriate values. For additional considerations and information, see the iSCSI performance considerations in the IBM AIX support documentation.Under certain conditions, performance issues may occur that could cause PowerPath® connections to the storage system to either degrade or fail.We recommend that you enable the AIX tcp_nodelayack option to prevent failed PowerPath connections. To set the tcp_nodelayack option, use the no command.

No comments:

Post a Comment

Recommended Readings