We are having severe file server performance issues in a Windows network,
and I need some help in diagnosing behavior I am seeing.
Windows 2003 clients and servers can alter the default TCP ACK frequency by
setting a value named TcpAckFrequency for each specific adapter located in
the registry key:
The value of TcpAckFrequency is the number of packets after which a TCP ACK
is sent. Higher values for TcpAckFrequency mean fewer ACKs are being sent
In the following report, the client is Windows 2003 and the server is
Windows 2000. I can change TCP ACK behavior on the client and not on the
server. Server runs on a 10/100 ethernet and client is on a gigabit
On the client, TcpAckFrequency defaults to 2. At this setting, copying a
250 MB file from the server takes 45 seconds. That's not a terrible
result, but I'm just establishing a baseline.
Microsoft Windows 2003 performance guidelines recommends a setting for TCP
ACK of 13 for gigabit Ethernet. Setting TcpAckFrequency to 13 on the
client yields copy time of 20+ minutes!!
Microsoft recommends a TCP ACK setting of 5 for 10/100 networks. Setting
to 5 yields copy time of 18 minutes!!
I tried going the other direction and setting to TcpAckFrequency of 1.
This yields copy time of 2 minutes.
Finally, I tried setting to TcpAckFrequency of 3. This yields copy time of
Can someone explain to me why increasing the TcpAckFrequency even slightly
is completely destroying performance of this file copy? The result is
very surprising to me.
On a related note, I am looking for a TCP expert who is also a Windows
networking expert in the South San Francisco Bay Area to help us out on this
problem. We are having numerous strange anomalies, including file copies
that just terminate without finishing, and it is obvious something fairly
serious is broken. If you are interested in doing that work as a
contractor please forward resume to westes AT earthbroadcast.com.