这里是conf文件和详细信息,不pipe我做了什么,soft openfiles都不会超过1024。
CENTOS 6.7 x86_64
cat /etc/security/limits.conf
*软nproc 65535
*硬nproc 65535
*软nofile 65535
* hard nofile 65535
cat /etc/security/limits.d/90-nproc.conf
*软nproc 65535
*硬nproc 65535
*软nofile 65535
* hard nofile 65535
root @ server [〜]#ulimit -n
65535
cat /etc/sysctl.conf
fs.file-max = 65535
猫/ proc / 1 /限制
最大打开文件1024 4096
在运行ulimit -n时会显示正确的限制,但是当您检查cat / proc / 1 / limits时,它将显示1024,服务器上的所有程序都会以1024 openfiles限制进行填充,它们都在root用户下运行。
您正在更改的限制仅影响login用户,因为它们是作为login过程的一部分由PAM实施的。 它们对以其他方式启动的进程没有影响,例如直接由systemd或init启动。
如果要更改由login用户以外的其他用户启动的进程的限制,则需要在该进程中执行此操作。 具有root权限的进程可以改变他们的限制,但是他们想要的。
# cat /proc/self/limits | grep -i open Max open files 1024 1024 files # ulimit -Hn 8192 # ulimit -n 8192 # cat /proc/self/limits | grep -i open Max open files 8192 8192 files # ulimit -Hn 65536 # ulimit -n 65536 # cat /proc/self/limits | grep -i open Max open files 65536 65536 files
Limits.conf和Root
在limits.conf中使用*仅适用于除root之外的所有用户。
如果你想设置root的限制,你必须指定root而不是(或除了* 。
例:
root soft nproc 65535 root hard nproc 65535 root soft nofile 65535 root hard nofile 65535
或者,您可以手动更改脚本中的限制,如另一个答案中所述。
注意
这假定您的应用程序使用PAM。 如果不是,则必须在脚本中设置限制。