IBM Support

Enabling tcp_nodelayack can improve network performance between an IBM WebSphere DataPower SOA Appliance and applications running on AIX (including Websphere MQ and Tivoli Access Manager)

Technote (troubleshooting)


Problem(Abstract)

Observing slow performance between a DataPower Appliance and an application running on AIX.

Symptom

If you are observing slow performance and see a delayed ACK response from an application running on AIX replying back to the DataPower Appliance, then you may be running into this issue.

For example, this has been observed using applications such as Websphere MQ or Tivoli Access Manager running on AIX.


Cause

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

However, this AIX default setting can slow down performance communicating between DataPower and some applications such as Websphere MQ or Tivoli Access Manager.

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 Websphere MQ, Tivoli Access Manager, or generally when sending small messages back and forth, it may greatly improve performance.

Diagnosing the problem

Here are some ways to diagnose the problem:

a) Turn the "tcp_nodelayack" option on and test the performance.

b) Review packet traces from DataPower to see if there is a delay between the packet sent to AIX and the ACK response coming back from AIX.

For example:

In Wireshark/Ethereal, you can look for the "Time delta from previous packet" entry for the ACK packet to determine the amount of time elapsed waiting for the ACK.

Resolving the problem

In order to disable the default ACK delay on AIX, the setting should be changed to:

tcp_nodelayack=1

For example:

To see what the current setting is:

/usr/sbin/no -o tcp_nodelayack

To test the option:

/usr/sbin/no -o tcp_nodelayack=1

To make the change persistent across reboots:

/usr/sbin/no -p -o tcp_nodelayack=1


NOTE: Although delayed acknowledgement may adversely affect some applications on AIX such as WebSphere MQ or Tivoli Access Manager communications with DataPower, it can improve performance for other network connections.

Therefore, you should not change the default tcp_nodelayack value unless you are experiencing slow communication with a DataPower Appliance.

You should consult with your AIX system administrator for further considerations about the impact this may have on your system and for further details of how to do this.


Cross reference information
Segment Product Component Platform Version Edition
Business Integration WebSphere DataPower XML Security Gateway XS40 Not Applicable Firmware 3.7.1, 3.7.2, 3.7.3 Edition Independent
Business Integration WebSphere DataPower XML Accelerator XA35 Not Applicable Firmware 3.7.1, 3.7.2, 3.7.3 Edition Independent
Business Integration WebSphere DataPower B2B Appliance XB60 Not Applicable Firmware 1.0.0, 3.7.3 Edition Independent
Business Integration WebSphere DataPower Low Latency Appliance XM70 Not Applicable Firmware 1.0.0, 3.7.3 Edition Independent
Business Integration WebSphere DataPower SOA Appliances Not Applicable Firmware 3.7.3, 3.7.2, 3.7.1, 1.0 Edition Independent

Document information

More support for: WebSphere DataPower Integration Appliance XI50

Software version: 3.8, 3.8.1, 3.8.2, 4.0.1, 4.0.2

Operating system(s): Firmware

Software edition: Edition Independent

Reference #: 1385899

Modified date: 12 April 2010