CentOS ulimit对系统资源的保护

ulimit 是一个用于控制 shell 进程及其子进程可以使用的系统资源限制的命令。在 CentOS 系统中,使用 ulimit 可以有效地保护系统资源,防止某个进程消耗过多资源导致系统崩溃或性能下降。

以下是一些常用的 ulimit 命令选项及其作用:

  1. -a:显示当前用户的所有资源限制。
  2. -c:设置核心文件的最大大小(单位:块)。
  3. -d:设置进程的数据段最大大小(单位:KB)。
  4. -f:设置单个进程可以创建的最大文件大小(单位:块)。
  5. -l:设置进程可以使用的最大内存锁定大小(单位:KB)。
  6. -m:设置进程可以使用的最大内存大小(单位:KB)。
  7. -n:设置进程可以打开的最大文件描述符数量。
  8. -p:设置管道缓冲区的最大大小(单位:512 字节)。
  9. -s:设置进程栈的最大大小(单位:KB)。
  10. -t:设置进程允许使用的最大 CPU 时间(单位:秒)。
  11. -u:设置用户可以创建的最大进程数量。
  12. -v:设置进程可以使用的最大虚拟内存大小(单位:KB)。
  13. -x:设置进程可以使用的最大外部内存大小(单位:KB)。

要使用 ulimit 命令设置资源限制,可以在 shell 中输入相应的命令。例如,要限制单个进程可以创建的最大文件大小为 100MB,可以使用以下命令:

ulimit -f 209715200

要使资源限制在系统重启后仍然生效,可以将相应的 ulimit 命令添加到 /etc/security/limits.conf 文件中。例如,要限制用户 user1 的最大进程数量为 100,可以在 /etc/security/limits.conf 文件中添加以下内容:

user1 soft nproc 100
user1 hard nproc 100

注意:修改 /etc/security/limits.conf 文件后,需要重新登录才能使更改生效。