ulimit 是一種 linux 系統的內鍵功能,它具有一套引數集,用於為由它生成的 shell 程序及其子程序的資源使用設定限制。本文將在後面的章節中詳細說明 ulimit 的功能,使用以及它的影響,並以具體的例子來詳細地闡述它在限制資源使用方面的影響。
ulimit 的功能和用法
ulimit 功能簡述
假設有這樣一種情況,當一台 linux 主機上同時登陸了 10 個人,在系統資源無限制的情況下,這 10 個使用者同時開啟了 500 個文件,而假設每個文件的大小有 10m,這時系統的記憶體資源就會受到巨大的挑戰。
而實際應用的環境要比這種假設複雜的多,例如在乙個嵌入式開發環境中,各方面的資源都是非常緊缺的,對於開啟檔案描述符的數量,分配堆疊的大小,cpu 時間,虛擬記憶體大小,等等,都有非常嚴格的要求。資源的合理限制和分配,不僅僅是保證系統可用性的必要條件,也與系統上軟體執行的效能有著密不可分的聯絡。這時,ulimit 可以起到很大的作用,它是一種簡單並且有效的實現資源限制的方式。
ulimit 用於限制 shell 啟動程序所占用的資源,支援以下各種型別的限制:所建立的核心檔案的大小、程序資料塊的大小、shell 程序建立檔案的大小、記憶體鎖住的大小、常駐記憶體集的大小、開啟檔案描述符的數量、分配堆疊的最大大小、cpu 時間、單個使用者的最大執行緒數、shell 程序所能使用的最大虛擬記憶體。同時,它支援硬資源和軟資源的限制。
作為臨時限制,ulimit 可以作用於通過使用其命令登入的 shell 會話,在會話終止時便結束限制,並不影響於其他 shell 會話。而對於長期的固定限制,ulimit 命令語句又可以被新增到由登入 shell 讀取的檔案中,作用於特定的 shell 使用者。
圖 1. ulimit 的使用
在下面的章節中,將詳細介紹如何使用 ulimit 做相應的資源限制。
如何使用 ulimit
ulimit 通過一些引數選項來管理不同種類的系統資源。在本節,我們將講解這些引數的使用。
ulimit 命令的格式為:ulimit [options] [limit]
具體的 options 含義以及簡單示例可以參考以下**。
表 1. ulimit 引數說明
選項 [options]
含義
例子
-h設定硬資源限制,一旦設定不能增加。
ulimit – hs 64;限制硬資源,執行緒棧大小為 64k。
-s設定軟資源限制,設定後可以增加,但是不能超過硬資源設定。
ulimit – sn 32;限制軟資源,32 個檔案描述符。
-a顯示當前所有的 limit 資訊。
ulimit – a;顯示當前所有的 limit 資訊。
-c最大的 core 檔案的大小, 以 blocks 為單位。
ulimit – c unlimited; 對生成的 core 檔案的大小不進行限制。
-d程序最大的資料段的大小,以 kbytes 為單位。
ulimit -d unlimited;對程序的資料段大小不進行限制。
-f程序可以建立檔案的最大值,以 blocks 為單位。
ulimit – f 2048;限制程序可以建立的最大檔案大小為 2048 blocks。
-l最大可加鎖記憶體大小,以 kbytes 為單位。
ulimit – l 32;限制最大可加鎖記憶體大小為 32 kbytes。
-m最大記憶體大小,以 kbytes 為單位。
ulimit – m unlimited;對最大記憶體不進行限制。
-n可以開啟最大檔案描述符的數量。
ulimit – n 128;限制最大可以使用 128 個檔案描述符。
-p管道緩衝區的大小,以 kbytes 為單位。
ulimit – p 512;限制管道緩衝區的大小為 512 kbytes。
-s執行緒棧大小,以 kbytes 為單位。
ulimit – s 512;限制執行緒棧的大小為 512 kbytes。
-t最大的 cpu 占用時間,以秒為單位。
ulimit – t unlimited;對最大的 cpu 占用時間不進行限制。
-u使用者最大可用的程序數。
ulimit – u 64;限制使用者最多可以使用 64 個程序。
-v程序最大可用的虛擬記憶體,以 kbytes 為單位。
ulimit – v 200000;限制最大可用的虛擬記憶體為 200000 kbytes。
我們可以通過以下幾種方式來使用 ulimit:
mysql檢視最大開啟程序數
今天在群裡剛剛知道這個mysql檢視開啟最大程序數的命令,下面來看一下吧 cat proc 27095 limits grep max open files 檢視mysql最大開啟程序數的命令 我們應該如何知道那個標黃的程序呢,想起來前幾天剛剛學過的命令了嗎,對的,就是lsof,這個命令可以檢視開啟...
Linux最大開啟檔案描述符數
1.系統最大開啟檔案描述符數 proc sys fs file max a.檢視 cat proc sys fs file max 186405 2.設定 a.臨時性 echo 1000000 proc sys fs file max 2.永久性 在 etc sysctl.conf中設定 fs.fi...
Linux最大開啟檔案描述符數
標籤 linux 最大檔案描述符 2013 10 28 19 34 12959人閱讀 收藏舉報 linux 3 1.系統最大開啟檔案描述符數 proc sys fs file max a.檢視 cat proc sys fs file max 186405 2.設定 a.臨時性 echo 10000...