1. 修改ulimit参数nofile
在/etc/security/limits.d/目录下,创建资源限制配置文件,将需要调整的参数加入其中即可。配置文件名格式为
<number>-<username>res.conf
username为应用系统运行时的os用户名,number为100以上即可。
例如,某应用系统的os用户名为ichat,那么配置文件名可以是104-ichatres.conf。在/etc/security/limits.d/目录下,创建104-icahtres.conf文件,填入配置保存即可。
可以用下面的命令无交互创建并写入,适合放入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
为使该配置文件生效,只需要重新进入shell即可。
2. 调整内核参数file-max和nr_open
临时调整
/sbin/sysctl -w fs.file-max = 10240000
/sbin/sysctl -w fs.nr_open = 102400
永久调整
在/etc/sysctl.d目录下,创建配置文件,将需要调整的参数加入其中即可。配置文件名格式为<number>-<appname>.conf。appname可以直接用应用系统运行时的os用户名。
执行以下命令,使之生效。替换掉命令中的文件名。
/sbin/sysctl -p /etc/sysctl.d/<number>-<appname>.conf
例如:
cat << EOF > /etc/sysctl.d/101-ichat.conf
#file-max,Linux可以分配的最大fd数量。
fs.file-max = 10240000
#nr_open,1个进程可以分配的最大fd数量。
fs.nr_open = 102400
EOF