Possible way to increase Linux TCP/IP port
thoroughput via sysctl kernel variable
Sysctl is a great way to optimize Linux. sysctl has a dozens of
values which could drastically improve server networking and
overall performance.
One of the many heplful variables to optimize the way the Linuz
kernel works on busy servers is
net.ipv4.ip_local_port_range
.
The default sysctl setting for
net.ipv4.ip_local_port_range
on Debian, Ubuntu Fedora, RHEL, CentOS is:
net.ipv4.ip_local_port_range = 32768
65536
This means that the kernel and the corresponding server running
services instructing the Linuz kernel open new port sockets can
only open local ports in the range of
32768 - 65536 .
On a regular Desktop GNU/Linux machine or a not high iron server
this settins is perfectly fine, however on a high scale servers the
local port range in the interval of 32768-65536 might be
insufficient at times, especially if there are programs which
require binding of many local ports.
Therefore on a high load servers, generally it's a good to raise
the port range to be assigned by kernel to
8912 - 65536 , to
do so the setting has to be changed like shown below:
linux:~# sysctl -w net.ipv4.ip_local_port_range = 8192
65536
...
If changing this setting on the server doesn't show any negative
impact on performance in few hours time or a day or even better
decreases the server
average load, it's a good idea that it
be added to
sysctl.conf to load up the setting on next
kernel boot.
linux:~# echo 'net.ipv4.ip_local_port_range' >>
/etc/sysctl.conf
Enjoy ;)