ulimit 是一个用于控制 shell 进程资源限制的命令行工具。在 CentOS 系统中,你可以使用 ulimit 来限制用户或进程的资源使用,例如文件描述符、进程数、CPU 时间等。以下是一些高级用法:
查看当前资源限制:
使用 ulimit -a 命令可以查看当前用户的所有资源限制。
临时更改资源限制:
你可以使用 ulimit 命令临时更改资源限制。例如,要将最大文件描述符数更改为 4096,可以使用以下命令:
ulimit -n 4096
请注意,这种更改仅在当前 shell 会话中生效。当你退出 shell 或重新登录时,更改将丢失。
永久更改资源限制:
要永久更改资源限制,你需要编辑 /etc/security/limits.conf 文件。例如,要将最大文件描述符数更改为 4096,可以在文件中添加以下行:
* soft nofile 4096
* hard nofile 4096
这将为所有用户设置最大文件描述符数为 4096。你可以根据需要更改用户名和资源类型。
更改特定用户的资源限制:
如果你想仅为特定用户更改资源限制,可以在 /etc/security/limits.conf 文件中使用用户名。例如,要将用户 john 的最大进程数更改为 2048,可以添加以下行:
john soft nproc 2048
john hard nproc 2048
更改系统范围内的资源限制:
要更改系统范围内的资源限制,你需要编辑 /etc/sysctl.conf 文件。例如,要将最大文件描述符数更改为 65536,可以在文件中添加以下行:
fs.file-max = 65536
然后运行 sysctl -p 命令使更改生效。
监控资源使用情况:
你可以使用 ulimit -v 命令查看当前进程的虚拟内存限制。此外,还可以使用其他 ulimit 子命令查看特定类型的资源限制,例如 ulimit -u(最大用户进程数)和 ulimit -t(最大 CPU 时间)等。
这些高级用法可以帮助你更好地控制系统资源的使用,确保系统在高负载情况下仍能正常运行。