问题1:
原因:你设置的最大打开文件限制数大于系统预设的最大系统级硬限制;
查看系统最大打开文件数系统级硬限制:
[smrtlink@localhost ~]$ cat /proc/sys/fs/file-max #直接修改这个数可以修改系统预设的硬限制
4096
解决办法分一下2步:
1. 修改系统预设的硬限制:
vi /etc/sysctl.conf 在文件最后加入 fs.file-max = 6553560 ,保存;
sysctl -p 使修改生效
(直接修改/proc/sys/fs/file-max也可以修改系统预设的硬限制)
2. 修改用户级文件打开数限制
vi /etc/security/limits.conf 再文件最后加入(这里我只改了smrtlink这个用户的限制,使用” * “代替 smrtlink 则对所有用户有效):
smrtlink soft nofile 8192 文件打开数 用户级软限制 (针对smrtlink这一个用户)
smrtlink hard nofile 32768 文件打开数 用户级硬限制
smrtlink soft nproc 8192 可使用线程数 用户级软限制 #与我们要解决的问题不相关
smrtlink soft nproc 32768 可使用线程数 用户级硬限制 #与我们要解决的问题不相关
保存;重启系统生效。
接下来使用 ulimit -n 8192 就不会报错了
来源:
https://www.cnblogs.com/zengkefu/p/5649407.html
https://segmentfault.com/q/1010000000251091
Leave a reply