在 CentOS 系统中,ulimit 是一个用于控制 shell 进程资源使用的命令行工具。它允许系统管理员设置用户进程可以使用的资源限制,例如打开的文件描述符数量、进程数等。ulimit 的配置可以通过两种方式进行:临时配置和永久配置。
临时配置是通过在 shell 中直接运行 ulimit 命令来实现的。这些设置只在当前 shell 会话中有效,关闭 shell 后设置将失效。例如:
ulimit -n 4096 # 设置打开的文件描述符数量限制为 4096
永久配置是通过修改系统配置文件来实现的。在 CentOS 中,主要有以下几个配置文件可以用来设置 ulimit:
/etc/security/limits.conf:此文件用于设置用户级别的资源限制。你可以为特定的用户或用户组设置限制。例如:* soft nofile 4096
* hard nofile 8192
上述配置表示为所有用户设置软限制为 4096,硬限制为 8192。nofile 表示文件描述符数量限制。
/etc/pam.d/system-auth 和 /etc/pam.d/password-auth:这两个文件用于配置 PAM(Pluggable Authentication Modules)认证模块。在这两个文件中,你可以添加以下行来启用资源限制:session required pam_limits.so
这将确保在用户登录时应用 /etc/security/limits.conf 中设置的资源限制。
/etc/sysctl.conf:此文件用于设置内核参数。虽然它主要用于配置系统性能和行为,但也可以用于设置一些与 ulimit 相关的参数。例如,你可以设置文件描述符的最大数量:fs.file-max = 100000
要使更改生效,请运行 sysctl -p 命令。