TCP/IP Forwarding Buffer Grows to Use All Available Kernel Memory

ID: Q221926


The information in this article applies to:
  • Microsoft Windows NT Server version 4.0 SP4
  • Microsoft Windows NT Workstation version 4.0 SP4
  • Microsoft Windows NT Server, Enterprise Edition version 4.0 SP4

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.

SYMPTOMS

The forward buffer used with TCP/IP to buffer routed packets between interfaces can grow to use all available kernel memory in Windows NT computers running Windows NT 4.0 Service Pack 4.

Or, you may see the following event information in the System log in Event Viewer:

Event ID: 2019
Description: The server was unable to allocate from the system nonpaged pool because the pool was empty.


CAUSE

The default maximum forwarding buffer size is 0xFFFFFFF bytes. Therefore, the buffer can grow to use all available system resources in this configuration.


RESOLUTION

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).

To work around this problem, add the following registry entries to the server running Windows NT 4.0 and modify the values to disallow memory usage to degrade system performance:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • MaxForwardBufferMemory (REG_DWORD: 74240)

    Establishes the maximum number of bytes of memory that the IP can allocate to store packet data in the router packet queue. This value must be greater than or equal to the value of ForwardBufferMemory.

    This registry entry is a decimal value.


  • MaxNumForwardPackets (REG_DWORD: 50)

    Establishes the maximum number of IP packet headers that can be allocated to the router packet queue. This value must be greater than or equal to the value of NumForwardPackets.

    This registry entry is a decimal value.


These values can be modified in accordance with the instructions to allocate more resources for the forwarding buffer, but increasing them excessively will have a negative effect on other system resources.


STATUS

Microsoft has confirmed this to be a problem in Windows NT version 4.0.

Additional query words: TCPu UPCT poolmon

Keywords : kbbug4.00
Version : winnt:4.0 SP4
Platform : winnt
Issue type : kbbug


Last Reviewed: January 17, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.