在 CentOS 系统中,ulimit
是一个用于控制 shell 进程资源使用的命令行工具
查看当前资源限制:
使用 ulimit -a
命令可以查看当前用户的所有资源限制。例如:
ulimit -a
输出结果类似于:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 123456
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
修改资源限制:
使用 ulimit
命令可以临时修改资源限制。例如,要将最大打开文件数更改为 2048,可以执行以下命令:
ulimit -n 2048
请注意,这种修改仅对当前 shell 会话有效。要永久更改资源限制,需要编辑 /etc/security/limits.conf
文件。例如,要将所有用户的最大打开文件数更改为 2048,可以在文件末尾添加以下行:
* soft nofile 2048
* hard nofile 2048
这里的 *
表示所有用户,soft
表示软限制,hard
表示硬限制,nofile
表示最大打开文件数。
资源管理:
除了 ulimit
命令外,还可以使用其他工具和策略来管理系统资源。例如:
cgroups
(控制组)来限制、记录和隔离进程组的资源使用(CPU、内存、磁盘 I/O 等)。systemd-run
命令为特定服务设置资源限制。nice
和 renice
命令调整进程的优先级。cpulimit
命令限制进程的 CPU 使用率。这些工具和策略可以帮助您更好地管理系统资源,确保系统在高负载情况下仍能正常运行。