最大打开文件数(文件句柄数)
linux最大打開文件句柄數,即打開文件數最大限制,就是規定的單個進程能夠打開的最大文件句柄數量(Socket連接也算在里面,默認大小1024)
liunx中文件句柄有兩個限制,一種是用戶級的,一種是系統級的(也叫內核級)
-
系統級的最大限制:
cat /proc/sys/fs/file-max -
用戶級的最大限制
ulimit -n(默認是1024,向阿里云華為云這種云主機一般是65535)
附ulimit 參數說明:
查看某個進程的最大打開文件數和當前打開文件數
先找到該進程的進程號,然后查看/proc/[pid]/limits和fd
/proc/[pid]/limits 顯示當前進程的資源限制
/proc/[pid]/fd 是一個目錄,包含進程打開文件的情況
ps:如果要查看某個進程的線程的詳細信息,/proc/[pid]/task
查看當前系統打開的文件總數:
lsof |wc -l
查看某個進程打開的文件數:
lsof -p pid |wc -l
修改最大限制
用戶級的修改
- 用戶級修改臨時生效方法:(重啟后失效)
ulimit 命令分軟限制和硬限制,加-H就是硬限制,加-S就是軟限制。默認顯示的是軟限制,如果運行ulimit 命令修改時沒有加上-H或-S,就是兩個參數一起改變。硬限制就是實際的限制,而軟限制是警告限制,它只會給出警告。
- 用戶級修改永久有效方式:
重新登錄驗證,或許reboot后驗證。
系統級的修改:
其實上面的修改都是對一個進程打開的文件句柄數量的限制,我們還需要設置系統的總限制才可以。
假如,我們設置進程打開的文件句柄數是1024 ,但是系統總限制才500,所以所有進程最多能打開文件句柄數量500。從這里我們可以看出只設置進程的打開文件句柄的數量是不行的。所以需要修改系統的總限制才可以。
- 系統級修改臨時生效方式:
- 系統級修改永久生效方式:
加入
fs.file-max=655350系統級永久生效方式修改后,重啟服務器,才能生效。
查看系統級文件句柄修改,是否生效
sysctl -p總結
以上是生活随笔為你收集整理的最大打开文件数(文件句柄数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1、Apache启动失败,请检查相关配置
- 下一篇: utf-8子系存储方式(下)