分类: 系统运维
2014-05-07 21:09:50
Tcp最大连接数只有28222个的解决方案
问题背景:
用Tsung模拟压力测试时,将ulimit -n的值调为65535,想建立6万多个tcp连接,但最终只观察到28222个。
原因分析:
这是因为Linux默认的端口范围不是0~65535,而是32768~61000。可用以下命令验证
[root@tixa ~]# sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
61000-32768=28232个。其他的地方用去10个,所以观察到的是28222个。
解决方案:
修改/etc/sysctl.conf文件,在文件中添加如下行:
net.ipv4.ip_local_port_range = 1024 65535
这表明将系统对本地端口范围限制设置为1024~65535之间。请注意,本地端口范围的最小值必须大于或等于1024;而端口范围的最大值则应小于或等于65535。修改完后保存此文件。
接着执行sysctl -p命令,如果系统没有错误提示,就表明新的本地端口范围设置成功。这样,理论上单独一个进程最多可以同时建立60000多个TCP客户端连接。
验证一下:
[root@tixa ~]# sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 1024 65535
最后再运行一下tsung start,果然观察到了60000多个tcp连接。