淺析linux修改文件句柄限制
修改文件句柄
參數(shù)
/proc/sys/fs/file-max 決定了當(dāng)前內(nèi)核可以打開的最大的文件句柄數(shù)。
ulimit -n 用戶進(jìn)程級的能夠打開文件句柄的數(shù)量。
修改內(nèi)核參數(shù)
如果重啟之后就要生效,就需要寫到配置文件里面
- vim /etc/sysctl.d/openfile.conf
創(chuàng)建一個先的文件,然后添加fs.file-max,大小可以根據(jù)實(shí)際情況來設(shè)置,也可以通過計(jì)算內(nèi)存使用大小來進(jìn)行限制,
例如,要限制最多只能使用內(nèi)存的10%
- grep -r MemTotal /proc/meminfo | awk '{printf("%d\n",$2/10)}'
- fs.file-max = 6553600
如果是systemd管理 ,需要重啟一下systemd-sysctl服務(wù)生效一下。
- systemctl restart systemd-sysctl
如果是有/etc/sysctl.conf文件可以直接使用sysctl直接生效
- sysctl -p
修改ulimit參數(shù)
臨時修改可以直接使用ulimit -n 65536進(jìn)行設(shè)置,如果需要啟動自動加載,直接寫入啟動命令,有可能出現(xiàn)報(bào)錯,需要依賴pam模塊。
如果需要重啟自動生效,就需要修改/etc/security/limits.conf
- vim /etc/security/limits.conf
添加
- * soft nproc 6553600
- * hard nproc 6553600
- * soft nofile 6553600
- * hard nofile 6553600
如果不生效,就需要把*替換成需要修改的用戶名即可,一般是在Ubuntu上需要寫上用戶名。