在 CentOS 系統中,ulimit
命令用于控制 shell 進程及其子進程可以使用的系統資源限制。這些限制可以包括文件大小、打開的文件描述符數量、進程數等。以下是一些常用的 ulimit
參數及其含義:
-a
顯示當前所有資源限制。
-c <core file size>
設置核心轉儲文件(core dump)的最大大?。ㄒ?blocks 為單位)。如果設置為 0,則禁止生成 core 文件。
-d <data seg size>
設置數據段的最大大?。ㄒ?KB 為單位)。
-f <file size>
設置單個文件的最大大?。ㄒ?blocks 為單位)。
-H
設置硬限制(hard limit),即不可更改的限制。
-m <memory size>
設置進程可以使用的內存最大值(以 KB 為單位)。
-n <open files>
設置一個進程可以同時打開的最大文件描述符數量。
-p <pipe size>
設置管道緩沖區的最大大?。ㄒ?512 字節塊為單位)。
-s <stack size>
設置棧的最大大?。ㄒ?KB 為單位)。
-u <processes>
設置用戶可以同時運行的最大進程數。
-U <soft limit>
設置軟限制(soft limit),即可以由用戶自行調整的限制。
-v <virtual memory size>
設置虛擬內存的最大大?。ㄒ?KB 為單位)。
-x <lock memory size>
設置鎖定內存的最大大?。ㄒ?KB 為單位)。
查看當前資源限制:
ulimit -a
設置單個文件的最大大小為 100MB:
ulimit -f 209715200
設置進程可以同時打開的最大文件描述符數量為 4096:
ulimit -n 4096
設置用戶可以同時運行的最大進程數為 512:
ulimit -u 512
ulimit
設置通常只對當前 shell 會話有效。要永久修改這些設置,可以在用戶的 .bashrc
或 .bash_profile
文件中添加相應的 ulimit
命令。通過合理使用 ulimit
命令,可以有效地管理和優化系統資源的使用,防止資源耗盡導致的系統問題。