作为一位linux运维工程师,你是否了解ulimit呢?
下面我为大家详细说明一下ulimit的作用及如何调整优化
计算机刚发明的时候,硬件资源都很小,和现在的硬件资源量无法比,因此,linux操作系统的发明者,为了保障操作系统稳定运行,使用ulimit
命令限制进程对资源的使用。目前,硬件性能大幅提升,ulimit的默认值让服务器难以发挥最佳性能。因此需要对ulimit的值进行调整优化。
上bash代码,让你用以下命令,一次性优化完成linux操作系统的ulimit限制。
# 调整/etc/security/limits.conf默认配置,将使用nohup命令的进程调整了ulimit值
cat << EOF >> /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
EOF
# 使用systemd管理的命令,可以使用以下命令调整ulimit值
sed -i 's/#DefaultLimitNOFILE=/DefaultLimitNOFILE=65535/g' /etc/systemd/*.conf
systemctl daemon-reload
以上两条命令可以将通过nohup和systemd启动的命令的文件句柄限制调整到65535。但是还是不够,因为操作系统本身还有一个整体的句柄限制数量。可以通过以下命令调整。
# 将系统整体的句柄限制数调整为188844
echo "fs.file-max = 188844" >> /etc/sysctl.conf
# 查看是否生效
cat /etc/sysctl.conf
因此,所有配置最好在系统上线前进行调整,调整完成后重启服务器。尽可能的将系统的句柄限制调优。