This hack just make the time default values for TCP/IP connection lower so that more connections can be handled by time on your TCP/IP protocol. The following will decrease the amount of time your Linux box will try take to finish closing a connection and the amount of time before it will kill a stale connection. This will also turn off some IP extensions that aren't needed. The default setup for the TCP/IP parameters we'll change under Red Hat Linux are:
For the tcp_fin_timeout 180
For the tcp_keepalive_time 7200
For the tcp_window_scaling 1
For the tcp_sack 1
For the tcp_timestamps 1
To adjust the new TCP/IP values, type the following commands on your terminal:
[root@deep] /#echo 30 >/proc/sys/net/ipv4/tcp_fin_timeout [root@deep] /#echo 1800 >/proc/sys/net/ipv4/tcp_keepalive_time [root@deep] /#echo 0 >/proc/sys/net/ipv4/tcp_window_scaling [root@deep] /#echo 0 >/proc/sys/net/ipv4/tcp_sack [root@deep] /#echo 0 >/proc/sys/net/ipv4/tcp_timestamps
Execute the above commands and put them in your /etc/rc.d/rc.local
file so you don't need to type them again each time your system reboots.
Edit the /etc/sysctl.conf
file and add the following lines:
# Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 30 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1800 # Turn off the tcp_window_scaling net.ipv4.tcp_window_scaling = 0 # Turn off the tcp_sack net.ipv4.tcp_sack = 0 # Turn off the tcp_timestamps net.ipv4.tcp_timestamps = 0
You must restart your network for the change to take effect. The command to manually restart the network is the following:
[root@deep] /# /etc/rc.d/init.d/network restart
Setting network parameters [ OK ]
Bringing up interface lo [ OK ]
Bringing up interface eth0 [ OK ]
Bringing up interface eth1 [ OK ]