TCP Settings for Heavy Load on Windows OS

This topic describes how to tune Windows XP, Windows 2003, and Windows 2008 /2012 R1 & R2 operating systems for TCP/IP performance. “Tuning” involves adding several registry keys. To add a key to the registry, you can either edit it directly as described below. When you have finished adding or editing these registry keys, you must restart the Server.

In all versions of Windows, add the keys described below. Certain keys/values depend on the operating system installed (noted in the Value name column where different).

Subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters

Value Name
(DWORD 32-bit)
Value Data
Decimal)
Description
TcpTimedWaitDelay 30 This key determines the time that must elapse before TCP/IP can release a closed connection and reuse its resources. This interval between closure and release is known as the TIME_WAIT state or twice the maximum segment lifetime (2MSL) state. During this time, reopening the connection to the client and server costs less than establishing a new connection. By reducing the value of this entry, TCP/IP can release closed connections faster and provide more resources for new connections. Adjust this parameter if the running application requires rapid release, the creation of new connections, or an adjustment because of a low throughput caused by multiple connections in the TIME_WAIT state.
MaxUserPort 32768 (minimum) This key determines the highest port number that TCP/IP can assign when an application requests an available user port from the system.
TcpMaxDataRetransmissions 5 (seconds) This key determines how many times TCP retransmits an unacknowledged data segment on an existing connection.
TcpNumConnections 16777214 Determines the maximum number of TCP connections that can be open simultaneously. If the value is 0, you cannot open a connection.

How to Add EPEL Repository in CentOS/RHEL 7/6/5

EPEL or “Extra Packages for Enterprise Linux” is an online yum repository providing high quality of rpm packages. These packages are developed and tested on fedora, which is available for RHEL. RHEL 7 beta packages are also available to install now.

  • Add EPEL Repository

Download and install epel-release package as per your system version and architecture. Basically they provides noarch packages, which means they are architecture independent but still EPEL providing different packages to download. So you can download as per you choice.
For CentOS/RHEL 7:
On 64-Bit
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

For CentOS/RHEL 6:
On 32-Bit
# rpm -Uvh http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm

On 64-Bit
# rpm -Uvh http://epel.mirror.net.in/epel/6/x86_64/epel-release-6-8.noarch.rpm

For CentOS/RHEL 5:
On 32-Bit
# rpm -Uvh http://epel.mirror.net.in/epel/5/i386/epel-release-5-4.noarch.rpm

On 64-Bit
# rpm -Uvh http://epel.mirror.net.in/epel/5/x86_64/epel-release-5-4.noarch.rpm

  • Test EPEL Repository

Now check if your repository is working properly on your system. Execute following command to list all packages available in epel repository

# yum –disablerepo=* –enablerepo=epel list all