DCSIMG
How to improve iSCSI Performance - Yuval Sinay
Sign in | Join | Help

Yuval Sinay

Yuval's blog.

How to improve iSCSI Performance

The following post cover a few tips and tricks that can improve you iSCSI performance.

Before making this changes in a production environment, its recommended to:

1. Contact the storage and the server vendor support team and check with them the suggested recommendation in this post.

2. Test the effect of the suggested changes in a testing environment that is the same as the production environment.

Note: Ignoring the aboved recommendation can lead to a data corruption.

 

General

1. Use the latest Microsoft operating System.

2. Update the current ISCSI initiator to the latest version.

3. If it applicable, use a HBA (Host Bus Adapter) with iSCSI accelerator.

4. In some scenarios, you may need to use the latest DSM (Device-Specific Module) software module, that can be obtained from the storage/HBA vendor.

5. ISCSI usually supported in 1 GB or higher infrastructure. Using 10/100 MB infrastructure can lead to low performance/data corruption.

6. Please use a dedicated network adapter/s (or HBA) for iSCSI connection. Combining regular network traffic and iSCSI traffic can lead to performance and security issues.

7. The network switch/s that planed to be used for the iSCSI infrastructure should be certificate for ISCSI traffic.

Note: Not all the common network switches officially support iSCSI.

9. Use the latest driver for the network adapter/HBA card/s.

10. For backup LUN by using direct SAN technology, its recommended to allow the backup server to have a Read only privilege to the required LUN.

11. Although iSCSI support block level transfer over TCP/IP, a regular network issues can lead to performance issues. To avoid performance issues, its recommended to implemented a full network design that includes redundant and optimize Spanning Tree Protocol (STP) implementation.

12. Consider to use Jumbo frame on the iSCSI network (Its specially recommended to environments that planed to be use for large file transfer).

 

Network Performance

1. Review the current network settings by using the command:

netsh interface tcp show global 

2. Consider to optimize the autotuninglevel level by implement one of the following settings:

netsh interface tcp set global autotuninglevel=restricted
netsh interface tcp set global autotuninglevel=high
netsh interface tcp set global autotuninglevel=disabled
netsh interface tcp set global autotuninglevel=disable

Note: Its recommended to reboot the server after appling this changes.

To restore to the default autotuninglevel settings, please use the command:

netsh interface tcp set global autotuninglevel=normal

Note: Its recommended to reboot the server after applying this changes.

Some customers recommended to apply one (or more) of the settings bellow:

netsh int tcp set heuristics disabled
netsh int tcp set global dca=enabled
netsh int tcp set global congestionprovider=ctcp
netsh int tcp set global ecncapability=enabled
netsh int tcp set heuristics disabled

However, I didn’t had the need to implemented this changes until now.

2. Consider to disable Chimney Offload State support:

netsh int tcp set global chimney=disabled

Note1: The settings can be disabled/enabled per network adapter, by using “Device Manager”.

Note2: To restore to the default Chimney Offload State settings, please use the command:

netsh int tcp set global chimney=anabled

Note3:Its recommended to reboot the server after applying this changes.

netsh int tcp set global chimney=enabled

3. Consider to disable Receive Side Scaling (RSS) support:

netsh int tcp set global rss=disabled

Note1: The settings can be disabled/enabled per network adapter, by using “Device Manager”.

Note2:To restore to the default Receive Side Scaling  (RSS) settings, please use the command:

netsh int tcp set global rss=anabled

Note3:Its recommended to reboot the server after applying this changes.

4. Although its usually supported, don’t use any firewall/routing device in the ISCSI network.

5. Consider to disable EnableICMPRedirect support:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
Value DWORD 32bits: EnableICMPRedirect set to "0"

Note: Its recommended to reboot the server after applying this changes.

6. To implement a high availably and high performance solution, consider to implement MPIO (Microsoft® Multipath I/O):

Understanding MPIO Features and Components

7. Integrating iSCSI, FCIP, and iFCP technologies required a special care. For start, please review: Mr. Jane Shurtleff article:

IP storage: A review of iSCSI, FCIP, iFCP

 

For further information, please review:

Information about the TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access features in Windows Server 2008
Storage

Netsh Technical Reference

Comments List

# re: How to improve iSCSI Performance

Published at Friday, August 05, 2011 7:55 PM by Jase  

I am getting quite confused, here is a recommended setting from StarWind support

netsh int tcp set heuristics disabled

netsh int tcp set global autotuninglevel=disabled

netsh int tcp set global congestionprovider=ctcp

netsh int tcp set global ecncapability=enabled

netsh int tcp set global rss=enabled

netsh int tcp set global chimney=enabled

netsh int tcp set global dca=enabled

they have chimney rss and autouninlevel enabled while other peoples were saying it should be disabled... what's the difference..

Leave a Comment

(required) 
(
required
)
 
(optional)
(required) 

Enter the numbers above: