Linux下解决高并发socket最大连接数所受的各种限制

linux作为服务器系统,当运行高并发TCP程序时,通常会出现连接建立到一定个数后不能再建立连接的情况

本人在工作时,测试高并发tcp程序(GPS服务器端程序),多次测试,发现每次连接建立到3800左右时,再也不能建立tcp连接,最总上网搜索,解决了连接限制的问题,此处记录下来,方便日后工作继续使用,虽然参考博文中内容有点多,文中所描述的内容也不怎么明白,但总结下来,按如下几步操作即可(我映像中,按此方法设置后,测试建立连接8000多时也未出现什么错误) :

第一步,修改/etc/security/limits.conf文件,在文件中添加如下行(*指代系统用户名),修改Linux系统对用户的关于打开文件数的软限制和硬限制:

* soft nofile 20000

* hard nofile 20000

第二步,修改/etc/pam.d/login文件,在文件中添加如下行:

session required /lib/security/pam_limits.so

如果是64bit系统的话,应该为 :

session required /lib64/security/pam_limits.so

第三步,修改/etc/sysctl.conf文件,在文件中(清楚文件原始内容)添加如下行(修改网络内核对TCP连接的有关限制):

第四步,执行如下命令(使上述设置生效):

第五步,执行如下命令(linux系统优化完网络必须调高系统允许打开的文件数才能支持大的并发,默认1024是远远不够的):

第六步,重启机器。

如果有任何疑问,欢迎添加qq群测试入门到大神 755431660 共同学习~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180601A157KO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券