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/unix ulimit命令詳解LinuxMIT
- Linux下ulimit命令的詳細使用介紹LinuxMIT
- 如何使用 ulimitMIT
- aix中使用者ulimit 限制的解決AIMIT
- Linux ulimit使用LinuxMIT
- ulimit操作及使用MIT
- [效能]ulimit與systemtapMIT
- Ubuntu 永久修改 ulimit -nUbuntuMIT
- linux----ulimit 限制LinuxMIT
- linux ulimit設定LinuxMIT
- 【CentOS7】ulimit 使用CentOSMIT
- linux_ulimit_open filerLinuxMIT
- 【LINUX】linux ulimit調優LinuxMIT
- 透過 ulimit 改善系統效能MIT
- Solaris 10’s Resource Management and Shell Limit(ulimit)MIT
- ulimit限制導致的 +++ killed by SIGKILL +++MIT
- 關於 ulimit 的兩個天坑MIT
- ulimit: core file size: cannot modify limit: Operation not permittedMIT
- Linux 指令篇:系統設定--ulimitLinuxMIT
- Linux下ulimit、find命令使用者LinuxMIT
- -bash: ulimit: open files: cannot modify limit: Operation not permittedMIT
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- Lombok 註解詳解Lombok
- Java註解詳解Java
- Java 註解詳解Java
- Java註解最全詳解(超級詳細)Java
- 452 Error writing file: A file cannot be larger than the value set by ulimit.ErrorMIT
- HiveQL詳解Hive
- 詳解Inode
- Vuex詳解Vue
- PWA詳解
- 詳解CountDownLatchCountDownLatch
- DiffUtil詳解
- iptables詳解
- TCP詳解TCP
- CDN詳解
- Typescript詳解TypeScript
- Mybatis詳解MyBatis