1.命令簡介
ulimit 屬 Shell 內建命令,用于查看或設置 Shell 以及通過 Shell 啟動的進程使用系統資源的上限。限制分為軟限制(當前限制)和硬限制,其中硬限制是軟限制的上限值。如果應用程序在運行過程中使用的系統資源超過相應的軟限制,將導致進程的終止。
由于系統資源有限,比如開啟文件描述符的數量,進程堆棧的大小,CPU 時間,虛擬內存大小,等等,操作系統對每一個進程都有嚴格的限制。資源的合理限制和分配,不僅僅是保證系統可用性的必要條件,也與進程性能密不可分。這時,ulimit 可以起到很大的作用,它是一種簡單并且有效的實現資源限制的方式。
2.命令格式
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
其中,limit 是對指定類型資源的具體限制,參數 S 表示設置軟限制,H 表示設置硬限制,當都不指定時,表示同時設置軟限制和硬限制。
3.選項說明
-H 設定資源的硬限制,只有 root 用戶可以操作 -S 設置資源的軟限制 -a 顯示目前所有資源設定的限制 -b socket 緩沖的最大值,單位 -c core 文件的最大值,單位 blocks -d 進程數據段的最大值,單位 KB -e 調度優先級上限,這里的優先級指 NICE 值。只針對普通用戶進程有效 -f 當前 Shell 可創建文件總大小的上限,單位 blocks -i 被掛起/阻塞的最大信號數量 -l 可以鎖住的物理內存的最大值,單位 KB -m 可以使用的常駐內存的最大值,單位 KB -n 每個進程可以同時打開的最大文件數 -p 管道的最大值,單位 block,1 block = 512 bytes -q POSIX 消息隊列的最大值 -r 限制程序實時優先級,只針對普通用戶進程有效 -s 進程棧最大值,單位 KB -t 最大 CPU 時間,單位 s -u 用戶最多可啟動的進程數目 -v 當前 Shell 可使用的最大虛擬內存,單位 KB -x 文件鎖的最大數量 -T 線程的最大數量
4.常用示例
(1)查看現有系統資源限制。
ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 255112 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65536 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) unlimited virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
(2)控制進程發生段錯誤(Segmentation Fault)時生成 coredump 文件。
ulimit -c unlimited
(3)設置進程的棧大小沒有限制。
ulimit -s unlimited
原文標題:每天一個 Linux 命令(74):ulimit 命令
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
Linux
+關注
關注
87文章
11298瀏覽量
209391 -
命令
+關注
關注
5文章
683瀏覽量
22019
原文標題:每天一個 Linux 命令(74):ulimit 命令
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論