1 人参与回答
智云优创服务器--lxm-zyyc
智云优创服 · 西安智云优创网络科技有限公司

linux会为每个用户登录系统打开最大文件数都有限制, 这个限制通过 ulimit -n 可以看到, 一般是 1024 .

在一些并发或多线程情况下, 需要突破这个限制.

修改

第一步 编辑 /etc/security/ 并确保其包含下列行:

* soft nofile 65535

* hard nofile 65535

这里 * 表示所有用户, 但有的系统不认, 需要具体的用户名, 比如:

root soft nofile 65535

root hard nofile 65535

第二步 编辑 etc/ , 确保有如下行:

session required pam_

第三步 退出终端重新登录.

验证

使用 ulimit -Hn 和 ulimit -Sn 命令可以分别查看当前进程用户的 hard 和 soft 的限制数.

或者当前用户启动某个程序后, 通过 cat /proc//limits (pid是该进程的, 或者其随便一个子进程的pid)