Linux下ulimit命令的詳細使用介紹

chenfeng發表於2016-06-21
ulimit主要用來限制程式對資源的使用情況,它支援各種型別的限制,常用的有:
 核心檔案的大小限制
 程式資料塊的大小限制
 shell程式建立檔案大小限制
 可加鎖記憶體大小限制
 常駐記憶體集的大小限制
 開啟檔案控制程式碼數限制
 分配堆疊的最大大小限制
 CPU佔用時間限制使用者最大可用的程式數限制
 shell程式所能使用的最大虛擬記憶體限制
ulimit使用的基本格式為:
ulimit [options] [limit]
具體的ulimit引數含義如下表所示:
引數                                      含義
-a                        顯示當前系統所有的limit資源資訊
-H                        設定硬資源限制,一旦設定不能增加
-S                        設定軟資源限制,設定後可以增加,但是不能超過硬資源設定
-c                        最大的core檔案大小,以blocks為單位
-f                        程式可以建立檔案的最大值,以blocks為單位
-d                        程式最大的資料段的大小,以Kbytes為單位
-m                        最大記憶體大小,以Kbytes為單位
-n                        可以開啟的最大檔案描述符的數量
-s                        執行緒棧大小,以Kbytes為單位
-p                        管道緩衝區的大小,以Kbytes為單位
-u                        使用者最大可用的程式數
-v                        程式最大可用的虛擬記憶體,以Kbytes為單位
-t                        最大CPU佔用時間,以s為單位
-l                        最大可加鎖記憶體大小,以Kbytes為單位


在使用ulimit時,有以下幾種使用方法:
1). 在使用者環境變數中加入
如果使用者使用的是bash,那麼可以在使用者目錄的環境變數檔案.bash_profile里加入"ulimit -u 128"來限制使用者最多可使用128個程式。
2). 在應用程式的啟動指令碼中加入
如果應用程式是tomcat,那麼可以在tomcat的啟動指令碼startup.sh里加入"ulimit -n 65536"來限制使用者最多可以使用65536個檔案描述符。
3).直接在shell終端中執行ulimit命令
這種方法的資源限制僅僅在執行命令的終端生效,在退出或關閉終端後,設定失效,並且這個設定不影響其他shell終端。
也可以將使用者資源的限制統一由一個檔案來配置,這個檔案是/etc/security/limits.conf,該檔案不但能對指定使用者的資源進行限制,還
能對指定組的資源進行限制。該檔案的使用規則如下:
  <domain> <type> <item> <value>
其中:
domain表示使用者或使用者組的名字,還可以用"*"作為萬用字元,表示任何使用者或使用者組。
type表示限制的型別,可以用兩個值:soft和hard,分別表示軟、硬資源限制。
item表示需要限定的資源名稱,常用的有nofile、cpu、stack等。分別表示最大開啟控制程式碼數、佔用的CPU時間、最大的堆疊大小。
value表示限制各種資源的具體數值。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2120616/,如需轉載,請註明出處,否則將追究法律責任。

相關文章