修改Linux最大檔案描述符(最大檔案控制代碼數)

2021-10-03 06:25:14 字數 2535 閱讀 1604

大家知道在linux伺服器大併發調優時,往往需要預先調優linux引數,其中修改linux最大檔案控制代碼數是最常修改的引數之一。

[root@mongodb11 ~]# ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 256324

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

posix message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 10240

cpu time (seconds, -t) unlimited

max user processes (-u) 256324

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

預設情況下,linux最大檔案控制代碼數為1024個。當你的伺服器在大併發達到極限時,就會報出「too many open files」。

那麼如何修改linux最大檔案控制代碼數呢?其實很簡單:

1、ulimit -n 2048

這命令就可以修改linux最大檔案控制代碼數,修改以後使用ulimit -a 檢視修改的狀態,如:

[root@mongodb11 ~]# ulimit -n 2048

[root@mongodb11 ~]# ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 256324

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 2048

pipe size (512 bytes, -p) 8

posix message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 10240

cpu time (seconds, -t) unlimited

max user processes (-u) 256324

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

但是,這種方法只針對當前程序有效。重新開啟乙個shell或者開啟乙個程序,你就會發現引數還是ulimit -n xx修改之前的數字。那麼有沒有一勞永逸的方法呢?

當然有!那就是修改系統引數。

2、修改linux系統引數。vi /etc/security/limits.conf 新增

*  soft  nofile  65536

*  hard  nofile  65536

修改以後儲存,登出當前使用者,重新登入,執行ulimit -a ,ok ,引數生效了:

[root@localhost ~]# ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 256600

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 65536

pipe size (512 bytes, -p) 8

posix message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 10240

cpu time (seconds, -t) unlimited

max user processes (-u) 256600

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

參考:

檢視Linux最大檔案描述符數

1.系統最大開啟檔案描述符數 proc sys fs file max 2.檢視 cat proc sys fs file max 3.重新設定 臨時性 echo 1000000 pro sys fs file max 永久性 在配置檔案 etc sysctl.conf中設定 fs.file max...

修改Linux系統下的最大檔案描述符限制

linux下最大檔案描述符的限制有兩個方面,乙個是使用者級的限制,另外乙個則是系統級限制。通常我們通過終端連線到linux系統後執行ulimit n 命令可以看到本次登入的session其檔案描述符的限制,如下 ulimit n 1024 當然可以通過ulimit shn 102400 命令來修改該...

Linux Linux下最大檔案描述符設定

linux下最大檔案描述符設定 by 授客qq 1033553122 1.系統可開啟最大檔案描述符設定 檢視系統可開啟最大檔案描述符 cat proc sys fs file max 65535 說明 所有程序開啟的檔案描述符數不能超過 proc sys fs file max 檢視當前系統使用的開...