1、修改/etc/security/limits.conf

* soft nofile 16384
* hard nofile 16384
* soft nproc 16384
* hard  nproc 16384
root soft nofile 16384
root hard nofile 16384
root soft nproc 16384
root hard  nproc 16384

注意:root用户的限制需要单独添加,*中是不包含root的。

2、修改/etc/sysctl.conf

fs.file-max = 65535

修改后执行命令sysctl -p使其生效。

3、修改进行的Max open files,可以使用命令cat /proc/<pid>/limits查看当前的配置

root@pg-worker-01:~# cat /proc/3047/limits | grep files
Max open files            1024                 4096                 files

在Centos7 & ubuntu 系统中,使用Systemd替代了之前的SysV。/etc/security/limits.conf文件的配置作用域缩小了。

/etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。
因此登录用户的限制,通过/etc/security/limits.conf/etc/security/limits.d下的文件设置即可。

对于systemd service的资源设置,则需修改全局配置:

  • /etc/systemd/system.conf
  • /etc/systemd/user.conf

同时也会加载两个对应目录中的所有.conf文件/etc/systemd/system.conf.d/.conf/etc/systemd/user.conf.d/.conf

system.conf是系统实例使用的,user.conf是用户实例使用的。

DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535

修改之后重新启动系统,再次查看进行的Max open files

root@pg-coordinate:~# cat /proc/1666/limits | grep files
Max open files            65535                65535                files