Microsoft KB Archive/933844

From BetaArchive Wiki

Article ID: 933844

Article Last Modified on 9/21/2007



APPLIES TO

  • Microsoft Internet Information Services 6.0



SYMPTOMS

When you try to view a Web page that is hosted on Microsoft Internet Information Services (IIS) 6.0, you receive an error message that resembles the following:

Page cannot be displayed
The page you are looking for is currently unavailable. The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings.

Additionally, an error message that resembles one or more of the following is logged in the Httperrlog_number.log file:

datetime - - - - - - - - - 1_Connections_Refused -

datetime - - - - - - - - - 24_Connections_Refused -

Note You must have error logging enabled for the HTTP APIs.

Note The Httperrlog_number.log file is located in the \System32\LogFiles\HTTPERR folder.

CAUSE

The issue occurs when nonpaged pool memory is no longer sufficient on the server to process new requests.

This behavior is determined based on the events that notify the Http.sys driver when the memory has hit various thresholds. For Microsoft Windows Server 2003 and for Windows Vista, this behavior occurs when less than 20 MB of nonpaged pool memory is available. These values may change in future versions of Windows.

RESOLUTION

To resolve this issue, use one of the following methods.

Method 1: Remove the /3GB switch from the Boot.ini file

This issue can occur if the Microsoft Windows Server 2003 /3GB switch is enabled in the Boot.ini file. We recommend that you analyze your configuration to determine whether the /3GB switch is needed. If the /3GB switch is not needed, we recommend that you remove the switch from the Boot.ini file.

Note The /3GB switch changes the way that the Microsoft Windows 4 GB virtual address space is divided. Instead of dividing the 4 GB virtual address space into 2 GB of user mode virtual address space and 2 GB of kernel mode virtual address space, the division is modified to 3 GB of user mode virtual address space and 1 GB of kernel mode virtual address space. In certain scenarios, this division can starve the kernel for memory. The division can also cause system-wide problems.

Method 2: Troubleshoot kernel mode memory leaks

This issue can occur if a memory leak exists in the nonpaged pool memory. For more information about how to troubleshoot memory leaks in nonpaged pool memory, click the following article numbers to view the articles in the Microsoft Knowledge Base:

177415 How to use Memory Pool Monitor (Poolmon.exe) to troubleshoot kernel mode memory leaks


298102 How to find pool tags that are used by third-party drivers


WORKAROUND

To work around this issue, enable the EnableAggressiveMemoryUsage registry key in the registry. When you enable the EnableAggressiveMemoryUsage registry key, the Http.sys driver stops accepting new connections when the driver is notified of the LowNonPagedPoolCondition event. This event occurs when the available nonpaged pool memory is less than 8 MB. These values may change in future versions of Windows.

To add the EnableAggressiveMemoryUsage registry key to the registry, follow these steps:

  1. Click Start, click Run, type Regedit, and then click OK.
  2. Locate and then click the following registry key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type EnableAggressiveMemoryUsage, and then press ENTER.
  5. Right-click EnableAggressiveMemoryUsage, click Modify, type 1 in the Value data box, and then click OK.
  6. Exit Registry Editor.
  7. Click Start, click Run, type Cmd in the Open box, and then click OK.
  8. At the command prompt, type net stop http /y, and then press ENTER.
  9. At the command prompt, type net start w3svc, and then press ENTER.


REFERENCES

For more information about how to enable the error logging capabilities of HTTP APIs, click the following article number to view the article in the Microsoft Knowledge Base:

820729 Error logging in HTTP API


For more information about how to use the /userva switch with the /3GB switch to tune user and kernel virtual memory space in Windows Server 2003 , click the following article number to view the article in the Microsoft Knowledge Base:

316739 How to use the /userva switch with the /3GB switch to tune the User-mode space to a value between 2 GB and 3 GB


For more information about how to use the Performance tool (Perfmon) to display the available Free System Page Table entries in Microsoft Windows Server 2003, click the following article number to view the article in the Microsoft Knowledge Base:

894067 The Performance tool does not accurately show the available Free System Page Table entries in Windows Server 2003


For more information about how to monitor and troubleshoot using paged pool memory in Exchange Server 2003 or in Exchange 2000 Server, click the following article number to view the article in the Microsoft Knowledge Base:

912376 How to monitor and troubleshoot the use of paged pool memory in Exchange Server 2003 or in Exchange 2000 Server


For more information about memory leaks that can occur in nonpaged pool memory, click the following article number to view the article in the Microsoft Knowledge Base:

897707 You may experience a memory leak in the non-paged pool memory when you mount more than 20 databases in Exchange Server 2003


For more information, visit the following Microsoft Developer Network (MSDN) Web site:

Keywords: kbtshoot kbprb KB933844