Recently, I was called to assist with a newly created Hyper-V cluster that was experiencing slow read\writes to SAN attached storage using iSCSI. I started poking around verifying drivers, NIC and virtual switch settings and then I realized that the hosts were missing the iSCSI performance registry hack.
The performance registry hack improves through-put by configuring the NIC to immediately acknowledge TCP packets allowing more data to be processed more effeciently.
The following section contains information about modifying TCP/IP registry settings. Before you modify the registry, make sure you back it up and understand how to restore the registry if a problem occurs. For information about how to backup, restore, and edit the registry, click the following link to the Microsoft Knowledge Base.
The following configuration is to be used on Windows Server 2003 SP1 or later and is to be used at your own risk.
1. Determine the IP address of the NIC configured for iSCSI traffic
2. Start the Registry Editor. Select Start > Run, Type Regedit and click OK.
3. Locate and select the following registry sub-key.
Under interfaces you will find a series of automatically generated GUIDs.
There will be one GUID for every network interface that is installed in the system. Select the GUID that contains the IP address of your iSCSI interface.
4. Select the IPAddress or DhcpIPAddress parameter that is used for iSCSI traffic.
5. Select Edit > New > DWORD value.
6. Name the new value TcpAckFrequency and assign it a value of 1.
7. Exit the Registry Editor
8. Restart Windows. A restart must take place before the changes are effective.
Once the system reboots improved iSCSI performance should be experienced.