Linux 命令之 ulimit 命令-控制shell程序的资源
文章目錄
- 介紹
- 常用選項
- 參考示例
介紹
用來限制系統用戶對 shell 資源的訪問。如果不懂什么意思,下面一段內容可以幫助你理解:
假設有這樣一種情況,當一臺 Linux 主機上同時登陸了 10 個人,在系統資源無限制的情況下,這 10 個用戶同時打開了 500 個文檔,而假設每個文檔的大小有 10M,這時系統的內存資源就會受到巨大的挑戰。
而實際應用的環境要比這種假設復雜的多,例如在一個嵌入式開發環境中,各方面的資源都是非常緊缺的,對于開啟文件描述符的數量,分配堆棧的大 小,CPU 時間,虛擬內存大小,等等,都有非常嚴格的要求。資源的合理限制和分配,不僅僅是保證系統可用性的必要條件,也與系統上軟件運行的性能有著密不可分的聯 系。這時,ulimit 可以起到很大的作用,它是一種簡單并且有效的實現資源限制的方式。
ulimit 用于限制 shell 啟動進程所占用的資源,支持以下各種類型的限制:所創建的內核文件的大小、進程數據塊的大小、Shell 進程創建文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell 進程所能使用的最大虛擬內存。同時,它支持硬資源和軟資源的限制。
作為臨時限制,ulimit 可以作用于通過使用其命令登錄的 shell 會話,在會話終止時便結束限制,并不影響于其他 shell 會話。而對于長期的固定限制,ulimit 命令語句又可以被添加到由登錄 shell 讀取的文件中,作用于特定的 shell 用戶。
常用選項
| -a | 顯示目前資源限制的設定 |
| -c <core文件上限> | 設定core文件的最大值,單位為區塊 |
| -d <數據節區大小> | 程序數據節區的最大值,單位為KB |
| -f <文件大小> | shell所能建立的最大文件,單位為區塊 |
| -H | 設定資源的硬性限制,也就是管理員所設下的限制 |
| -m <內存大小> | 指定可使用內存的上限,單位為KB |
| -n <文件數目> | 指定同一時間最多可開啟的文件數 |
| -p <緩沖區大小> | 指定管道緩沖區的大小,單位512字節 |
| -s <堆疊大小> | 指定堆疊的上限,單位為KB |
| -S | 設定資源的彈性限制 |
| -t <CPU時間> | 指定CPU使用時間的上限,單位為秒 |
| -u <程序數目> | 用戶最多可開啟的程序數目 |
| -v <虛擬內存大小> | 指定可使用的虛擬內存上限,單位為KB |
參考示例
示例 1,顯示系統資源的設置:
[root@linuxcool ~]# ulimit -a示例 2,設置單一用戶程序數目上限 :
[root@linuxcool ~]# ulimit -u 500示例 3,將每個進程可以打開的文件數目加大到 4096 :
[root@linuxcool ~]# ulimit -n 4096示例 4,指定可使用的虛擬內存上限為12800KB :
[root@linuxcool ~]# ulimit -v 12800示例 5,指定CPU使用時間的上限為2s :
[root@linuxcool ~]# ulimit -t 2總結
以上是生活随笔為你收集整理的Linux 命令之 ulimit 命令-控制shell程序的资源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 命令之 pgrep -- 用
- 下一篇: Linux 命令之 w 命令-显示目前登