Share via


iSCSI and the Nagle Algorithm

Article

The Nagle algorithm was originally implemented to prevent lots of very small TCP packets to congest the network by grouping them together and sending them at once. This increases bandwidth (less header bytes per user data), but at the cost of latency.

For a storage network, you want good latency. Usually, you would consider sending lots of small packets (the example would be telnet sending a package for every key pressed) unwanted behaviour. However, if you send small commands over your storage network, you want responses as fast as possible, without waiting 200ms that no more data is ready for sending.

Therefore, you should consider disabling the behaviour implemented with the Nagle algorithm for your interfaces used for storage networks.

You can set/create the DWORD Key TcpAckFrequency with value 1 under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Guid} (you will eventually have multiple Guid Entries, look for the one(s) with the right IP)

Alternatively, a script to set it is available here.

Links related to the Nagle algorithm:

Other Languages

This article is also available in the following languages:

Deutsch (de-DE)