Storage optimization: Letting your RAID or Fibre Channel (FC) adapter use beyond the first 4GB of RAM installed.

Does not apply to:
Windows Server vNext (Windows 10)
Windows Server 2012 R2

Applies to:
Windows Server 2012 that has more than 4GB of RAM installed.
Windows Server 2008 R2 that has more than 4GB of RAM installed.

Does not apply to:
Windows Server 2008
Windows Server 2003

Symptom:
========    
The Windows Server 2008 R2 or Windows Server 2012 may intermittently perform poorly or stop responding for a while (10-20 seconds).

 

The items have to be in place for this behavior to occur:

•The computer has more than 4 GB of physical memory.

•You install an application or service (SQL Server or Exchange Server) that uses a large amount of memory on the computer.

•You install some high-performance storage devices.

For example, you install a host-based RAID adapter or a Fibre Channel (FC) Host Bus adapter (HBA) that can access more than 4 gigabytes (GB).

•The Storport.sys driver is used to manage these storage devices.   

Cause:
======
This issue is caused by an incorrect memory allocation limitation in the Storport.sys driver. The Storport driver (Storport.sys) requires memory within 4 GB of computer memory for its own allocations and for implementing the miniport IOCTL that is used by storage configuration and by management utilities. Therefore, the driver unnecessary creates contention for memory within the first 4GB of RAM.

When little or no memory within the first 4GB of RAM is available, the memory manager (MM) tries to trim the working sets (WS) of all processes to free memory.

In perfmon, you will see that the “Process – Working Set – <application or service>” is/are being trimmed.

Resolution:
===========
Step 1)
In Windows Servers running 2008 R2 and 2012, you will need to set the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<MINIPORT>\Parameters
Note:  Where<MINIPORT> means the name of the Raid adapter or FC HBA Storport miniport driver.

Supports64BitAddressing (dword) 1 (hex)
Note:  The codebase in Windows Server 2012 R2 automatically detects if your HBA is capable of using DMA above the 4GB mark.

Step 2)
Additionally, some vendors have additional registry keys that need to be set such as:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<MINIPORT>\Parameters\Device\
DriverParameter (String) Supports64BitAddressing=1
Note:  You want to check OEM HBA vendors readme.txt information, if it's not available in their readme.txt, contact the OEM hardware vendor.

Step 3)
Windows Servers running 2008 R2, you will need to install the hotfix:
2468345 Computer intermittently performs poorly or stops responding when the Storport driver is used in Windows Server 2008 R2

Note:  Or a newer version of storport.sys
Note 2:  It's not hosted in Windows Update.
Note 3:  The codebase is included in Windows Server 2012 and 2012 R2, thus you don't need the hotfix to be installed.

References:
===========
2468345 Computer intermittently performs poorly or stops responding when the Storport driver is used in Windows Server 2008 R2    

Performing DMA in 64-Bit Windows

Here is a list of some of the “Fibre Channel” HBA manufacturers:

Note:  If I’m missing one of the HBA manufacturers, send me the link to the them using the “Options” > “Email Blog Author””.

Brocade Fibre Channel (FC) HBA == ?
Broadcom Fibre Channel (FC) HBA == ?
Emulex Fibre Channel (FC) HBA == ?
QLogic Fibre Channel (FC) HBA == some of the QLogic HBA's take advantage of DMA above the 4GB range, such as QLE2560 https://filedownloads.qlogic.com/files/Driver/90461/readme.txt

HP A8002A and A8003A HBAs
HBAfeatures - Performance specifications

 

Yong

P.S.  ? = Unknown, contact the OEM hardware vendor.  And send me a link using the “Options” > “Email Blog Author””.