在 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 使用率。這些工具和策略可以幫助您更好地管理系統資源,確保系統在高負載情況下仍能正常運行。