This is provided "AS IS" with no warranties, and confers no rights.
Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 (http://support.microsoft.com/kb/256986/) Description of the Microsoft Windows Registry
A 32-bit Exchange 2003 front end server or a 32-bit Windows Server 2003 server running the RPC over HTTP Proxy service will be able to support approximately 20,000 RPC over HTTP connections before exhausting the 250MB of available Kernel Non-Paged Pool memory.
While it is recommended that you wait for the release of Exchange 2007, in some circumstances, it may be necessary to deploy a 64-bit Windows Server 2003 server running the RPC over HTTP Proxy service in order to support additional RPC over HTTP(S) connections. Microsoft 64-bit operating systems support 128GB of Kernel Non-Paged Pool memory. Therefore, on 64-bit systems, other factors will likely limit the number of RPC over HTTP connections before Kernel Non-Paged Pool memory is exhausted.
This article describes some changes that should be considered in order to maximize the number of RPC over HTTP(S) connections that can be supported by a single 64-bit Windows Server 2003 server running the RPC over HTTP proxy service.
Verifying support for RPC over HTTP Proxy
The changes in this article assume that you have configured a functioning RPC over HTTP Proxy server. To verify that you have enabled support for RPC over HTTP on a server running Windows Server 2003, follow these steps:
1. In Control Panel, click Add/Remove Programs
2. Click Add/Remove Windows ComponentsThis will start the Windows Components Wizard
3. Click Networking Services, and then click Details
4. Ensure that the RPC over HTTP Proxy check box is selected.
Adjusting the TCP/IP MaxUserPort and TCP TimedWaitDelay Parameters
By default, when a program requests any available user port from the system, a port is allocated between ports 1024 to 5000. With the default setting, a RPC over HTTP Proxy server will support less than 4000 connections. You will need to set the TCP/IP MaxUserPort parameter to its maximum setting of 65534 in order to support approximately 30,000 RPC over HTTP connections. The TCP/IP TcpTimedWaitDelay value determines the length of time that a connection stays in the TIME_WAIT state before it is closed. By default this is set to 4 minutes. It is recommended that this be set to 60 seconds for an RPC over HTTP Proxy server.
To add and configure the MaxUserPort parameter:
1. Start Registry Editor (Regedt32.exe).
2. Locate the following key in the registry:
3. Right-click on Parameters and select New DWORD Value. Type MaxUserPort in the Name data box, type 65534 (Decimal) in the Value data box, and then click OK.
NOTE: The default setting for the MaxUserPort value is 5000 (Decimal).
4. Quit Registry Editor.
To add and configure the TcpTimedWaitDelay parameter:
5. Right-click on Parameters and select New DWORD Value. Type TcpTimedWaitDelay in the Name data box, type 60 (Decimal) in the Value data box, and then click OK.
NOTE: The default setting for the TcpTimedWaitDelay value is 240 (Decimal), which equals four minutes. Never set this value below 30.
3. Quit Registry Editor.
Increase the number of IP addresses or network interface cards
The TCP/IP MaxUserPort parameter applies to each IP address. Therefore, adding multiple IP addresses to a single network interface card or adding multiple network interface cards will allow you to increase the TCP connection limits by multiples of 65534. For example, two IP addresses can support over 130,000 TCP connections (or over 65,000 HTTP connections). It is important to note that depending on your server hardware, other system resources may become a limiting factor before reaching 130,000 TCP connections.
Adjusting the HTTP MaxConnections Parameter
The MaxConnections property specifies the maximum number of simultaneous connections to a server. The valid range is 0 to 4294967295 (unlimited).
To add and configure the MaxConnections parameter:
4. Start Registry Editor (Regedt32.exe).
5. Locate the following key in the registry:
6. Right-click on Parameters and select New DWORD Value. Type MaxConnections in the Name data box, type 4294967295 in the Value data box, and then click OK.
NOTE: The valid range for the MaxConnections value is 0 to 4294967295 (unlimited).
6. Quit Registry Editor.
Configuring IIS Web Garden Mode
Internet Information Server (IIS) 6.0 enables administrators to attach multiple worker processes to an application pool. This is termed a web garden. Http.sys can only support a maximum of 65534 connections per worker process. By running in web garden mode, you can increase the number of connections by 65534 for every additional worker process added. Each new TCP/IP connection is assigned to a worker process in the Web garden by using a round-robin scheme. The round-robin scheme smoothes workloads and reduces contention for resources that are bound to a worker process.
To configure IIS 6.0 in web garden mode:
1. In IIS Manager, expand local computer, expand Application Pools, right-click the application pool, and then click Properties.
2. On the Performance tab, under Web garden, in the Maximum number of worker processes box, type the number of worker processes that you want to assign to the application pool, and then click OK.
NOTE: For optimum performance, you should have the same number of worker processes as that of processors in the Web server.
Microsoft Windows Server 2003 64-bit Enterprise Edition
Microsoft Windows Server 2003 64-bit Standard Edition