参数
/proc/sys/fs/file-max 决定了当前内核可以打开的最大的文件句柄数。
ulimit -n 用户进程级的能够打开文件句柄的数量。
修改内核参数
如果重启之后就要生效,就需要写到配置文件里面
- vim /etc/sysctl.d/openfile.conf
创建一个先的文件,然后添加fs.file-max,大小可以根据实际情况来设置,也可以通过计算内存使用大小来进行限制,
例如,要限制最多只能使用内存的10%
- grep -r MemTotal /proc/meminfo | awk '{printf("%d\n",$2/10)}'
- fs.file-max = 6553600
如果是systemd管理 ,需要重启一下systemd-sysctl服务生效一下。
- systemctl restart systemd-sysctl
如果是有/etc/sysctl.conf文件可以直接使用sysctl直接生效
- sysctl -p
修改ulimit参数
临时修改可以直接使用ulimit -n 65536进行设置,如果需要启动自动加载,直接写入启动命令,有可能出现报错,需要依赖pam模块。
如果需要重启自动生效,就需要修改/etc/security/limits.conf
- vim /etc/security/limits.conf
添加
- * soft nproc 6553600
- * hard nproc 6553600
- * soft nofile 6553600
- * hard nofile 6553600
如果不生效,就需要把*替换成需要修改的用户名即可,一般是在Ubuntu上需要写上用户名。