Linux ulimit解決最大開啟檔案數限制

2021-06-09 18:50:53 字數 2509 閱讀 4828

background: adf-fr /rr st/pt 系統引數調整。

limit: 顯示(或設定)使用者可以使用的資源的限制(limit), 這限制分為軟限制(當前限制)和硬限制(上限), 其中硬限制是軟限制的上限值, 應用程式在執行過程中使用的系統資源不超過相應的軟限制, 任何的超越都導致程序的終止. 

1. 各引數含義

usage: ulimit [-shacdflmnpstuv] [limit]

ulimited 不限制使用者可以使用的資源, 但本設定對可開啟的最大檔案數(max open files)和可同時執行的最大程序數(max user processes)無效.

-h 設定硬體資源限制.

-s 設定軟體資源限制.

-a 列出所有當前資源極限

-c 設定core檔案的最大值.單位:blocks

-d 設定乙個程序的資料段的最大值.單位:kbytes

-f shell 建立檔案的檔案大小的最大值, 單位:blocks

-h 指定設定某個給定資源的硬極限. 如果使用者擁有 root 使用者許可權, 可以增大硬極限. 任何使用者均可減少硬極限

-l 可以鎖住的物理記憶體的最大值

-m 可以使用的常駐記憶體的最大值,單位:kbytes

-n 每個程序可以同時開啟的最大檔案數

-p 設定管道的最大值, 單位為block, 1block=512bytes

-s 指定堆疊的最大值: 單位:kbytes

-s 指定為給定的資源設定軟極限. 軟極限可增大到硬極限的值. 如果 -h 和 -s 標誌均未指定, 極限適用於以上二者

-t 指定每個程序所使用的秒數,單位:seconds

-u 可以執行的最大併發程序數

-v shell可使用的最大的虛擬記憶體, 單位:kbytes

-x2. 範例一 

$ ulimit -a

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

file size               (blocks, -f) unlimited

pending signals                 (-i) 1024

max locked memory       (kbytes, -l) 32

max memory size         (kbytes, -m) unlimited

open files                      (-n) 65536

pipe size            (512 bytes, -p) 8

posix message queues     (bytes, -q) 819200

stack size              (kbytes, -s) 10240

cpu time               (seconds, -t) unlimited

max user processes              (-u) 16384

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

輸出的每一行由資源名字,(單位, ulimit命令的引數),軟限制組成. 詳細解釋: 

core file size        core檔案的最大值為100blocks

data seg size        程序的資料段可以任意大

file size        檔案可以任意大

pending signals     最多有1024個待處理的訊號

max locked memory    乙個任務鎖住的物理記憶體的最大值為32kb

max memory size        乙個任務的常駐物理記憶體的最大值

open files        乙個任務最多可以同時開啟65536個檔案

pipe size        管道的最大空間為4096位元組

posix message queues    posix的訊息佇列的最大值為819200位元組

stack size        程序的棧的最大值為10240位元組

cpu time        程序使用的cpu時間

max user processes    當前使用者同時開啟的程序(包括執行緒)的最大個數為16384

virtual memory        沒有限制程序的最大位址空間

file locks        所能鎖住的檔案的最大個數沒有限制

3. 範例二

通過ulimit命令來限制檔案的大小, 從而導致拷貝命令的失敗.

# ulimit -f 1        --設定建立檔案的最大塊(一塊=512位元組)

# cat a.c > temp.txt    --會提示檔案大小超出限制

檔案a.c的大小是5002位元組,而我們設定的建立檔案的大小是512位元組x1塊=512位元組.

Linux ulimit 永久設定

etc security limits.conf 新增 soft nofile 65535 hard nofile 65535 soft nproc 可開啟的檔案描述符的最大數 軟限制 hard nproc 可開啟的檔案描述符的最大數 硬限制 soft nofile 單個使用者可用的最大程序數量 軟...

Linux ulimit命令詳解

ulimit 是乙個計算機命令,用於shell啟動程序所占用的資源,可用於修改系統資源限制 1 h 設定硬資源限制.2 s 設定軟資源限制.3 a 顯示當前所有的資源限制.4 c size 設定core檔案的最大值.單位 blocks 5 d size 設定資料段的最大值.單位 kbytes 6 f...

Linux ulimit命令詳解

ulimit 是乙個計算機命令,用於shell啟動程序所占用的資源,可用於修改系統資源限制 h 設定硬資源限制.s 設定軟資源限制.a 顯示當前所有的資源限制.c size 設定core檔案的最大值.單位 blocks d size 設定資料段的最大值.單位 kbytes f size 設定建立檔案...