I have a Windows 2000 server that boots from QLogic's SANblade 2200 to XIOtech's MAGNITUDE disk array. The system works under light loads, but the Server service crashes during heavy loads, and the server lists errors 2021 and 2022 in the event log. The errors appear to be network-related, but I can't find the necessary documentation to troubleshoot this problem. Do you have any ideas?

Because you didn't specify how you're connecting your Storage Area Network (SAN) components, I assume you're connecting the SANblade 2200 card directly to the MAGNITUDE disk array instead of using a switch to connect the two components. The MAGNITUDE disk array lets you directly connect up to eight different servers before requiring a switch, although I recommend a switch for optimal performance.

Event log errors 2021 and 2022 are the result of the Server service not being able to offload network requests to the disk fast enough, which causes the Server service to run out of available resources and crash. Although Microsoft might disagree, I believe this problem reflects Win2K's less-than-optimal system for disk I/O queuing. Fortunately, you can fix the problem by editing the registry—make sure you back up your registry before applying these changes. You must make changes to the system registry exactly as I've stated here by performing the following steps:

  1. Open a registry editor.
  2. Navigate to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters registry subkey.
  3. From the Edit menu, click New, DWORD Value.
  4. Enter the value name MaxWorkItems, set the value data (in decimal) to 65535, then click OK.
  5. Under the same registry subkey, create another DWORD value, enter the name MaxRawWorkItems, set the value data (in decimal) to 512, then click OK.
  6. Again, under the same registry subkey, create another DWORD value, enter the value name MaxFreeConnections, set the value data (in decimal) to 100, then click OK.
  7. Reboot the system for the changes to take effect.

The first two registry values specify the maximum number of receive buffers and raw receive buffers the system can allocate. The third value specifies the number of free connection blocks the system maintains for each endpoint. These settings probably won't affect system performance, but if your system reaches the maximum number of receive buffers, performance might marginally degrade.

You might also be able to resolve the problem by using a SAN switch to attach a few machines, as opposed to connecting directly, to the MAGNITUDE disk array. Because the SAN has no cache and the drive cache is disabled, the only way to achieve maximum performance is to apply a moderate or heavy load to the array. Under these conditions, the MAGNITUDE disk array can produce impressive performance numbers, rivaling some upper-end disk arrays from EMC and Hitachi.