问题描述
由于项目性能测试需要上百万 tcp 连接,程序报错:
too many open files
查阅资料发现是系统参数 最大文件打开数 file-max
限制
于是根据网上资料修改 /etc/security/limits.conf
# 在文件末尾添加以下两行
* soft nofile 2000000
* hard nofile 2000000
重启服务器后发现无法 ssh 连接,查阅资料发现是 limits.conf
中配置的最大打开数超过了 /etc/sysctl.conf
中的最大文件打开数
fs.file-max = 1000000
fs.nr_open = 1000000
解决方法
-
如果目前已经无法连接 ssh
需要进入 linux 单人模式将limits.conf
中的数值修改回正常范围,详细步骤点击 参考链接 -
如果目前仍然可以 ssh
- 修改
/etc/sysctl.conf
以下两项参数,数值设定根据实际需求,我这里需求 300 万fs.file-max = 3000000 fs.nr_open = 3000000
- 修改
/etc/security/limits.conf
在最后面添加以下两项参数,数值需要小于上一步所设定的数值,我这里设置为 200 万* soft nofile 2000000 * hard nofile 2000000
- 修改