Centos 6 软打开文件 1024?

Centos 6 软打开文件 1024?

这是配置文件和详细信息,无论我做什么,软打开文件都不会超过 1024。

CENTOS 6.7 x86_64

猫/etc/security/limits.conf
* 软 nproc 65535
* 硬 nproc 65535
* 软 nofile 65535
* 硬 nofile 65535

猫/etc/security/limits.d/90-nproc.conf
* 软 nproc 65535
* 硬 nproc 65535
* 软 nofile 65535
* 硬 nofile 65535

root@server [~]# ulimit -n
65535

猫/etc/sysctl.conf
fs.文件最大值 = 65535

猫/proc/1/限制
最大打开文件数 1024 4096

当您运行 ulimit -n 时,它显示正确的限制,但是当您检查 cat /proc/1/limits 时,它显示 1024,服务器上的所有程序都受到 1024 openfiles 限制,它们都在 root 用户下运行。

答案1

您正在更改的限制仅影响已登录的用户,因为它们是由 PAM 作为登录过程的一部分实施的。它们对以其他方式启动的进程没有影响,例如由 systemd 或 init 直接启动的进程。

如果您想要更改由用户登录以外的其他方式启动的进程的限制,则需要在该进程本身中执行此操作。具有 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

答案2

Limits.conf 和 Root

在 limits.conf 中使用*仅适用于除 root 之外的所有用户。

如果要对根设置限制,则必须指定root而不是(或除了)*

例子:

root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535

或者您可以按照另一个答案中提到的方式手动更改脚本中的限制。

笔记

这假设您的应用程序使用 pam。如果没有,您必须在脚本中设置限制。

相关内容