原创文章首发微信公众号「后端技术学堂」转载请先与我联系,点文末链接「了解更多」
Linux系统中tcp连接数是有最大限制的,即是进程可打开的最大文件描述个数,通过命令ulimit -n查看
TCP连接数限制
高负载的服务器通过修改ulimit参数达到合理规划用户使用资源和系统资源的目的。
用户级别
修改最大连接数
修改系统参数实现ulimit -SHn 65535
修改pam模块配置实现session required /lib/security/pam_limits.so修改/etc/security/limits.conf如下举例 * soft nofile 65536 * hard nofile 65536 *代表所有用户,当然也可以指定用户如root-H硬限制是实际的限制,-S软限制是warnning限制,只会做出warning.如果运行ulimit命令修改的时候没有加上SH,就是两个参数一起改变.
确认修改是否生效
项目中遇到修改后虽然命令查看已经是修改后的值,但是进程连接的tcp个数还是系统默认的1024导致接入拒绝
查看进程实际的最大连接数
cat /proc/进程pid/limits Max open files 就是当前进程的实际值
系统级别
查看总的系统打开文件限制
cat /proc/sys/fs/file-max
若要修改可以在rc.local加
echo 你要的 > /proc/sys/fs/file-max
创作不易,点赞关注支持一下吧
我会持续分享软件编程和程序员那些事,欢迎关注。若你对编程感兴趣,我整理了这些年学习编程大约3G的资源汇总,关注公众号「后端技术学堂」后发送「资料」免费获取。