ulimit 是一个用于控制 shell 和由它启动的进程所能使用的系统资源的命令。通过 ulimit,你可以设置或查看用户级别的资源限制,例如打开文件的最大数量、进程数等。以下是如何使用 ulimit 调整系统级资源限制的步骤:
查看当前限制:
ulimit -a
这将显示所有当前的资源限制。
设置特定限制: 例如,要增加打开文件的最大数量到 4096:
ulimit -n 4096
设置所有限制: 你可以一次性设置多个限制,例如:
ulimit -u 1024 -n 4096 -m unlimited
这里 -u 设置用户进程数,-n 设置打开文件数,-m 设置内存大小(unlimited 表示无限制)。
要永久调整资源限制,你需要编辑系统的配置文件。常见的配置文件包括:
/etc/security/limits.conf/etc/sysctl.conf/etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractivelimits.conf打开 /etc/security/limits.conf 文件:
sudo nano /etc/security/limits.conf
添加或修改以下行来设置用户或组的资源限制:
username soft nofile 4096
username hard nofile 8192
@groupname soft nofile 4096
@groupname hard nofile 8192
这里 username 是用户名,groupname 是组名,soft 是软限制,hard 是硬限制。
保存并关闭文件。
sysctl.conf对于某些系统级的资源限制,你可能需要编辑 /etc/sysctl.conf 文件:
打开 /etc/sysctl.conf 文件:
sudo nano /etc/sysctl.conf
添加或修改以下行来设置系统级的资源限制:
fs.file-max = 100000
这里 fs.file-max 设置系统可以打开的最大文件数。
保存并关闭文件,然后应用更改:
sudo sysctl -p
确保 PAM 配置文件中包含了对 limits.conf 的引用:
打开 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive 文件:
sudo nano /etc/pam.d/common-session
sudo nano /etc/pam.d/common-session-noninteractive
确保包含以下行:
session required pam_limits.so
保存并关闭文件。
通过以上步骤,你可以有效地调整系统级的资源限制。