ulimit
是一個用于控制 shell 進程及其子進程可以使用的系統資源限制的命令。在 CentOS 系統中,使用 ulimit
可以有效地保護系統資源,防止某個進程消耗過多資源導致系統崩潰或性能下降。
以下是一些常用的 ulimit
命令選項及其作用:
-a
:顯示當前用戶的所有資源限制。-c
:設置核心文件的最大大?。▎挝唬簤K)。-d
:設置進程的數據段最大大?。▎挝唬篕B)。-f
:設置單個進程可以創建的最大文件大?。▎挝唬簤K)。-l
:設置進程可以使用的最大內存鎖定大?。▎挝唬篕B)。-m
:設置進程可以使用的最大內存大?。▎挝唬篕B)。-n
:設置進程可以打開的最大文件描述符數量。-p
:設置管道緩沖區的最大大?。▎挝唬?12 字節)。-s
:設置進程棧的最大大?。▎挝唬篕B)。-t
:設置進程允許使用的最大 CPU 時間(單位:秒)。-u
:設置用戶可以創建的最大進程數量。-v
:設置進程可以使用的最大虛擬內存大?。▎挝唬篕B)。-x
:設置進程可以使用的最大外部內存大?。▎挝唬篕B)。要使用 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
文件后,需要重新登錄才能使更改生效。