ulimit命令說明與用法


1. 什么是ulimit

ulimit 是一種 Linux 系統的內建功能,它具有一套參數集,用於為由它生成的 shell進程及其所創進程的資源使用限制。
Provides control over the resources available to the shell and processes it creates, on systems that allow such control.

ulimit是臨時限制,作用於通過使用其命令登錄的 shell 會話,在會話終止時便結束限制,並不影響於其他 shell 會話。
若想實現長期的固定限制,ulimit 命令語句又可以被添加到由登錄 shell 讀取的配置文件中,作用於特定的 shell 用戶。

2. 限制哪些資源

image
從上到下,依次為:

-a:顯示目前資源限制的設定;
-c <core文件上限>:設定core文件的最大值,單位為區塊;
-d <數據節區大小>:程序數據節區的最大值,單位為KB;
-f <文件大小>:shell所能建立的最大文件,單位為區塊;
-H:設定資源的硬性限制,也就是管理員所設下的限制;
-m <內存大小>:指定可使用內存的上限,單位為KB;
-n <文件數目>:指定同一時間最多可開啟的文件數;
-p <緩沖區大小>:指定管道緩沖區的大小,單位512字節;
-s <堆疊大小>:指定堆疊的上限,單位為KB;
-S:設定資源的彈性限制;
-t <CPU時間>:指定CPU使用時間的上限,單位為秒;
-u <程序數目>:用戶最多可開啟的程序數目;
-v <虛擬內存大小>:指定可使用的虛擬內存上限,單位為KB。

3. 常用操作

查看系統用戶所有限制值:

ulimit -a

設置用戶open files(用戶可以打開文件的最大數目):

ulimit -n 4096。

執行該命令非root用戶只能設置到4096。想要設置到8192需要sudo權限或者root用戶。

查看當前系統打開的文件數量:

lsof | wc -l

查看當前進程的打開文件數量:

lsof -p pid | wc -l      (lsof -p 1234 | wc -l  )

查看當前進程的最大可以打開的文件數:

cat /proc/PID/limits  (如果通過ulimit -n 設置或者修改/etc/security/limits.conf,看看進程是否生效)  

查看系統總限制打開文件的最大數量:

cat /proc/sys/fs/file-max

lsof只能以root權限執行。在終端下輸入lsof即可顯示系統打開的文件,因為 lsof 需要訪問核心內存和各種文件,所以必須以 root 用戶的身份運行它才能夠充分地發揮其功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM