ulimit
是一个用于控制 shell 启动的进程能够使用的系统资源的命令。通过 ulimit
,你可以限制用户或进程可以打开的文件描述符数量、进程数等,从而防止系统资源耗尽。以下是一些常见的 ulimit
设置方法:
你可以使用以下命令查看当前的 ulimit
设置:
ulimit -a
你可以在当前 shell 会话中临时设置 ulimit
。例如,限制一个用户可以打开的最大文件描述符数量为 4096:
ulimit -n 4096
要永久设置 ulimit
,你需要编辑系统的配置文件。常见的配置文件包括:
编辑 /etc/security/limits.conf
文件,添加以下行来设置用户的资源限制:
* soft nofile 4096
* hard nofile 8192
这行配置表示所有用户(*
)的软限制(soft
)为 4096,硬限制(hard
)为 8192。
确保 /etc/pam.d/common-session
文件中包含以下行,以使 limits.conf
的设置生效:
session required pam_limits.so
同样,确保 /etc/pam.d/common-session-noninteractive
文件中也包含以下行:
session required pam_limits.so
你还可以通过编辑 /etc/sysctl.conf
文件来设置系统级的资源限制。例如,限制系统可以打开的最大文件描述符数量:
fs.file-max = 100000
然后运行以下命令使更改生效:
sysctl -p
为了确保 ulimit
设置生效并且系统资源没有耗尽,你可以使用以下命令监控资源使用情况:
查看当前打开的文件描述符数量:
lsof | wc -l
查看系统当前的最大文件描述符数量:
cat /proc/sys/fs/file-max
通过这些方法,你可以有效地使用 ulimit
来防止系统资源耗尽。