linux下最大檔案描述符的限制有兩個方面,乙個是使用者級的限制,另外乙個則是系統級限制。
通常我們通過終端連線到linux系統後執行ulimit -n 命令可以看到本次登入的session其檔案描述符的限制,如下:
$ulimit -n
1024
當然可以通過ulimit -shn 102400 命令來修改該限制,但這個變更只對當前的session有效,當斷開連線重新連線後更改就失效了。
如果想永久變更需要修改/etc/security/limits.conf 檔案,如下:
vi /etc/security/limits.conf
* hard nofile 102400
* soft nofile 102400
儲存退出後重新登入,其最大檔案描述符已經被永久更改了。
這只是修改使用者級的最大檔案描述符限制,也就是說每乙個使用者登入後執行的程式占用檔案描述符的總數不能超過這個限制。
它是限制所有使用者開啟檔案描述符的總和,可以通過修改核心引數來更改該限制:
sysctl -w fs.file-max=102400
使用sysctl命令更改也是臨時的,如果想永久更改需要在/etc/sysctl.conf新增
fs.file-max=102400
儲存退出後使用sysctl -p 命令使其生效。
與file-max引數相對應的還有file-nr,這個引數是唯讀的,可以檢視當前檔案描述符的使用情況。
下面是摘自kernel document中關於file-max和file-nr引數的說明
有時,這樣修改完成後,重啟系統,使用ipcs -l後發現,修改的核心引數仍然是預設值,
並沒有生效。這可能是因為,在系統啟動時,載入核心引數後,啟動級別較低的服務又
重新修改了核心引數。乙個較簡單的解決方案是在rc.local裡,加上sysctl -p,重新加
載核心引數。該檔案是在系統啟動時,最後執行的指令碼。
修改Linux最大檔案描述符(最大檔案控制代碼數)
大家知道在linux伺服器大併發調優時,往往需要預先調優linux引數,其中修改linux最大檔案控制代碼數是最常修改的引數之一。root mongodb11 ulimit a core file size blocks,c 0 data seg size kbytes,d unlimited sc...
修改linux最大檔案控制代碼數
大家知道在linux伺服器大併發調優時,往往需要預先調優linux引數,其中修改linux最大檔案控制代碼數是最常修改的引數之一。在linux中執行ulimit a 即可查詢linux相關的引數,如下所示 root mongodb11 ulimit a core file size blocks,c...
修改linux最大檔案控制代碼數
在linux中執行ulimit a 即可查詢linux相關的引數,如下所示 root mongodb11 ulimit a core file size blocks,c 0 data seg size kbytes,d unlimited scheduling priority e 0 file ...