1. 修改ulimit參數(shù)nofile
在/etc/security/limits.d/目錄下,創(chuàng)建資源限制配置文件,將需要調(diào)整的參數(shù)加入其中即可。配置文件名格式為
<number>-<username>res.conf
username為應(yīng)用系統(tǒng)運(yùn)行時(shí)的os用戶名,number為100以上即可。
例如,某應(yīng)用系統(tǒng)的os用戶名為ichat,那么配置文件名可以是104-ichatres.conf。在/etc/security/limits.d/目錄下,創(chuàng)建104-icahtres.conf文件,填入配置保存即可。
可以用下面的命令無交互創(chuàng)建并寫入,適合放入shell腳本。
cat << EOF > /etc/security/limits.d/104-ichatres.conf
ichatres hard nofile 102400
ichatres soft nofile 102400
ichatres hard nproc 102400
ichatres soft nproc 102400
EOF
為使該配置文件生效,只需要重新進(jìn)入shell即可。
2. 調(diào)整內(nèi)核參數(shù)file-max和nr_open
臨時(shí)調(diào)整
/sbin/sysctl -w fs.file-max = 10240000
/sbin/sysctl -w fs.nr_open = 102400
永久調(diào)整
在/etc/sysctl.d目錄下,創(chuàng)建配置文件,將需要調(diào)整的參數(shù)加入其中即可。配置文件名格式為<number>-<appname>.conf。appname可以直接用應(yīng)用系統(tǒng)運(yùn)行時(shí)的os用戶名。
執(zhí)行以下命令,使之生效。替換掉命令中的文件名。
/sbin/sysctl -p /etc/sysctl.d/<number>-<appname>.conf
例如:
cat << EOF > /etc/sysctl.d/101-ichat.conf
#file-max,Linux可以分配的最大fd數(shù)量。
fs.file-max = 10240000
#nr_open,1個(gè)進(jìn)程可以分配的最大fd數(shù)量。
fs.nr_open = 102400
EOF