[smrtlink@localhost ~]$ulimit -n 8192 报错:
bash: ulimit: open files: 无法修改 limit 值: 不允许的操作
原因:你设置的最大打开文件限制数大于系统预设的最大系统级硬限制;

查看系统最大打开文件数系统级硬限制:

[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也可以修改系统预设的硬限制)

  1. 修改用户级文件打开数限制

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 就不会报错了

评论已关闭