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