TCP连接数配置
一般的设置规则为:
系统最大文件数>可用端口>用户最大文件数
sysctl -a | grep file-max
cat /proc/sys/fs/file-max
这表明这台Linux系统最多允许同时打开(即包含所有用户打开文件数总和)798031个文件,是Linux系统级硬限制,所有用户级的打开文件数限制都不应超过这个数值。通常这个系统级硬限制是Linux系统在启动时根据系统硬件资源状况计算出来的最佳的最大同时打开文件数限制,如果没有特殊需要,不应该修改此限制,除非想为用户级打开文件数限制设置超过此限制的值。修改此硬限制的方法是修改/etc/rc.local脚本,在脚本中添加如下行:
echo 65535 > /proc/sys/fs/file-max
这是让Linux在启动完成后强行将系统级打开文件数硬限制设置为65535。修改完后保存此文件。
一、文件数限制修改
1、vi/etc/security/limits.conf
其中test指定了要修改哪个用户的打开文件数限制。
可用'*'号表示修改所有用户的限制;soft或hard指定要修改软限制还是硬限制;65535则指定了想要修改的新的限制值,即最大打开文件数、进程数和堆栈数(请注意软限制值要小于或等于硬限制)。
2、上面的永久修改方式重启还不会生效,需要执行
vi /etc/pam.d/login
在末尾添加
session required /usr/lib64/security/pam_limits.so
作用是告诉Linux在用户完成系统登录后,应该调用pam_limits.so来执行limit.conf这个文件
这是告诉Linux在用户完成系统登录后,应该调用pam_limits.so模块来设置系统对该用户可使用的各种资源数量的最大限制(包括用户可打开的最大文件数限制)。
而pam_limits.so模块就会从/etc/security/limits.conf文件中读取配置来设置这些限制值。
二、网络端口限制修改
1、查看端口范围
sysctl -a | grep ipv4.ip_local_port_range
vi /etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.ip_conntrack_max = 20000
如果按上述端口范围进行设置,则理论上单独一个进程最多可以同时建立60000多个TCP客户端连接。
如果按上述参数进行设置,则理论上单独一个进程最多可以同时建立10240多个TCP客户端连接。改完需重启生效。