当用户使用Linux作为系统时,socket在运行高并发的TCP程序时,可能会遇到连接数量到一定个数后被阻断的情况
我在工作的时候,测试高并发tcp程序(GPS服务器端程序),经过多次测试之后,发现每次建立的连接到达1000个左右
就再也不能建立tcp连接,然后在互联网上搜索,发现linux系统默认的ulimit为1024,这是用户最多可开启的程序数目。
一般一个端口的最高连接为2的16次方65535
第一步,修改/etc/security/limits.conf文件,在文件中添加如下行(*指代系统用户名),
修改Linux系统对用户的关于打开文件数的软限制和硬限制:
soft nofile 65535
hard nofile 65535
第二步,修改/etc/pam.d/login文件,在文件中添加如下行:
session required /lib/security/pam_limits.so
如果是64bit系统的话,应该为 :
session required /lib64/security/pam_limits.so
第三步,修改/etc/sysctl.conf文件,在文件中(清楚文件原始内容)添加如下行(修改网络内核对TCP连接的有关限制):
net.ipv4.ip_local_port_