ulimit詳解
1、ulimit 功能簡述
假設有這樣一種情況,當一臺 Linux 主機上同時登陸了 10 個人,在系統資源無限制的情況下,這 10 個使用者同時開啟了 500 個文件,而假設每個文件的大小有 10M,這時系統的記憶體資源就會受到巨大的挑戰。
而實際應用的環境要比這種假設複雜的多,例如在一個嵌入式開發環境中,各方面的資源都是非常緊缺的,對於開啟檔案描述符的數量,分配堆疊的大 小,CPU 時間,虛擬記憶體大小,等等,都有非常嚴格的要求。資源的合理限制和分配,不僅僅是保證系統可用性的必要條件,也與系統上軟體執行的效能有著密不可分的聯 系。這時,ulimit 可以起到很大的作用,它是一種簡單並且有效的實現資源限制的方式。
ulimit 用於限制 shell 啟動程式所佔用的資源,支援以下各種型別的限制:所建立的核心檔案的大小、程式資料塊的大小、Shell 程式建立檔案的大小、記憶體鎖住的大小、常駐記憶體集的大小、開啟檔案描述符的數量、分配堆疊的最大大小、CPU 時間、單個使用者的最大執行緒數、Shell 程式所能使用的最大虛擬記憶體。同時,它支援硬資源和軟資源的限制。
作為臨時限制,ulimit 可以作用於通過使用其命令登入的 shell 會話,在會話終止時便結束限制,並不影響於其他 shell 會話。而對於長期的固定限制,ulimit 命令語句又可以被新增到由登入 shell 讀取的檔案中,作用於特定的 shell 使用者。
ulimit 命令的格式為:ulimit [options] [limit]
具體的 options 含義以及簡單示例可以參考以下表格。
綜上所述,linux 系統中的 ulimit 指令,對資源限制和系統效能優化提供了一條便捷的途徑。從使用者的 shell 啟動指令碼,應用程式啟動指令碼,以及直接在控制檯,都可以通過該指令限制系統資源的使用,包括所建立的核心檔案的大小、程式資料塊的大小、Shell 程式建立檔案的大小、記憶體鎖住的大小、常駐記憶體集的大小、開啟檔案描述符的數量、分配堆疊的最大大小、CPU 時間、單個使用者的最大執行緒數、Shell 程式所能使用的最大虛擬記憶體,等等方面。本文中的示例非常直觀的說明了 ulimit 的使用及其產生的效果,顯而易見,ulimit 對我們在 Linux 平臺的應用和開發工作是非常實用的。
相關文章
- Linux ulimit使用LinuxMIT
- 【CentOS7】ulimit 使用CentOSMIT
- Ubuntu 永久修改 ulimit -nUbuntuMIT
- 關於 ulimit 的兩個天坑MIT
- Solaris 10’s Resource Management and Shell Limit(ulimit)MIT
- ulimit: core file size: cannot modify limit: Operation not permittedMIT
- 在Linux中,umask 和 ulimit有什麼區別?LinuxMIT
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- Java註解最全詳解(超級詳細)Java
- Lombok 註解詳解Lombok
- @FeignClient註解詳解client
- Java 註解詳解Java
- Java註解詳解Java
- FindResource詳解
- DP 詳解
- HttpUtils 詳解HTTP
- HDMI詳解
- RIAD詳解
- iperf詳解
- dBFS詳解
- kubectl詳解
- 列表詳解
- Callback詳解
- ARM 詳解
- Symbol詳解Symbol
- Dockerfile詳解Docker
- Service詳解
- HugePages詳解
- Pod詳解
- HTML詳解HTML
- Weakmap詳解
- MyBatisPlus詳解MyBatis
- Git詳解Git
- GRPC詳解RPC
- SpringBoot詳解Spring Boot
- beenline 詳解
- Typescript詳解TypeScript
- dcokerfile 詳解