ulimit
控制shell程序的資源
補充說明
ulimit命令 用來限制系統用戶對shell資源的訪問。如果不懂什麼意思,下面一段內容可以幫助你理解:
假設有這樣一種情況,當一臺 Linux 主機上同時登陸了 10 個人,在系統資源無限制的情況下,這 10 個用戶同時打開了 500 個文檔,而假設每個文檔的大小有 10M,這時系統的內存資源就會受到巨大的挑戰。
而實際應用的環境要比這種假設複雜的多,例如在一個嵌入式開發環境中,各方面的資源都是非常緊缺的,對於開啓文件描述符的數量,分配堆棧的大 小,CPU 時間,虛擬內存大小,等等,都有非常嚴格的要求。資源的合理限制和分配,不僅僅是保證系統可用性的必要條件,也與系統上軟件運行的性能有着密不可分的聯 系。這時,ulimit 可以起到很大的作用,它是一種簡單並且有效的實現資源限制的方式。
ulimit 用於限制 shell 啓動進程所佔用的資源,支持以下各種類型的限制:所創建的內核文件的大小、進程數據塊的大小、Shell 進程創建文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell 進程所能使用的最大虛擬內存。同時,它支持硬資源和軟資源的限制。
作爲臨時限制,ulimit 可以作用於通過使用其命令登錄的 shell 會話,在會話終止時便結束限制,並不影響於其他 shell 會話。而對於長期的固定限制,ulimit 命令語句又可以被添加到由登錄 shell 讀取的文件中,作用於特定的 shell 用戶。
語法
1ulimit(選項)
選項
1-a:顯示目前資源限制的設定;
2-c <core文件上限>:設定core文件的最大值,單位爲區塊;
3-d <數據節區大小>:程序數據節區的最大值,單位爲KB;
4-e 默認進程優先級, 值越小優先級越高
5-f <文件大小>:shell所能建立的最大文件,單位爲區塊;
6-H:設定資源的硬性限制,也就是管理員所設下的限制;
7-m <內存大小>:指定可使用內存的上限,單位爲KB;
8-n <文件數目>:指定同一時間最多可開啓的文件數;
9-p <緩衝區大小>:指定管道緩衝區的大小,單位512字節;
10-s <堆疊大小>:指定堆疊的上限,單位爲KB;
11-S:設定資源的彈性限制;
12-t <CPU時間>:指定CPU使用時間的上限,單位爲秒;
13-u <程序數目>:用戶最多可開啓的程序數目;
14-v <虛擬內存大小>:指定可使用的虛擬內存上限,單位爲KB。
實例
1[root@localhost ~]# ulimit -a
2core file size (blocks, -c) 0 #core文件的最大值爲100 blocks。
3data seg size (kbytes, -d) unlimited #進程的數據段可以任意大。
4scheduling priority (-e) 0
5file size (blocks, -f) unlimited #文件可以任意大。
6pending signals (-i) 98304 #最多有98304個待處理的信號。
7max locked memory (kbytes, -l) 32 #一個任務鎖住的物理內存的最大值爲32KB。
8max memory size (kbytes, -m) unlimited #一個任務的常駐物理內存的最大值。
9open files (-n) 1024 #一個任務最多可以同時打開1024的文件。
10pipe size (512 bytes, -p) 8 #管道的最大空間爲4096字節。
11POSIX message queues (bytes, -q) 819200 #POSIX的消息隊列的最大值爲819200字節。
12real-time priority (-r) 0
13stack size (kbytes, -s) 10240 #進程的棧的最大值爲10240字節。
14cpu time (seconds, -t) unlimited #進程使用的CPU時間。
15max user processes (-u) 98304 #當前用戶同時打開的進程(包括線程)的最大個數爲98304。
16virtual memory (kbytes, -v) unlimited #沒有限制進程的最大地址空間。
17file locks (-x) unlimited #所能鎖住的文件的最大個數沒有限制。
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。