ulimit 是一个用于控制 shell 进程资源限制的命令,它在 CentOS 多用户环境中非常有用。通过使用 ulimit,系统管理员可以限制每个用户在特定类别下的资源使用,例如文件描述符、进程数、CPU 时间等。这有助于确保系统资源的公平分配,防止恶意或错误操作导致系统崩溃。
以下是一些在 CentOS 多用户环境中应用 ulimit 的常见场景:
限制每个用户的最大进程数:通过设置 ulimit -u,可以限制每个用户可以同时运行的最大进程数。这有助于防止单个用户消耗过多系统资源,影响其他用户的正常使用。
限制每个用户的最大文件描述符数:通过设置 ulimit -n,可以限制每个用户可以同时打开的最大文件描述符数。这有助于防止文件描述符泄漏,导致系统资源耗尽。
限制每个用户的 CPU 时间:通过设置 ulimit -t,可以限制每个用户进程可以使用的最大 CPU 时间。这有助于防止单个用户占用过多 CPU 资源,影响其他用户的正常使用。
限制每个用户的最大内存使用量:通过设置 ulimit -v 或 ulimit -m,可以限制每个用户进程可以使用的最大内存。这有助于防止单个用户消耗过多内存资源,导致系统崩溃。
要在 CentOS 中设置 ulimit,可以通过以下方法:
临时设置:在用户的 shell 配置文件(如 .bashrc 或 .bash_profile)中添加 ulimit 命令。这样,当用户登录时,设置将生效。但请注意,这种方法只对新登录的用户有效,对已经登录的用户无效。
全局设置:编辑 /etc/security/limits.conf 文件,添加相应的 ulimit 设置。这样,所有用户在登录时都会应用这些设置。例如:
* soft nproc 100
* hard nproc 200
* soft nofile 1024
* hard nofile 2048
这将限制所有用户的最大进程数为 200,最大文件描述符数为 2048。
/etc/security/limits.d/ 目录下的文件,添加相应的 ulimit 设置。这样,属于特定用户组的用户在登录时将应用这些设置。请注意,修改 ulimit 设置可能需要 root 权限。在进行更改之前,请确保了解每个设置的含义及其对系统的影响。