通过 ulimit
命令可以优化 CentOS 服务器的性能,主要涉及文件描述符限制、内存限制和 CPU 时间限制等方面的调整。以下是具体的优化步骤和建议:
查看当前 ulimit
设置
使用以下命令查看当前系统的所有资源限制:
ulimit -a
临时修改资源限制
可以通过 ulimit
命令临时调整当前会话的最大进程数或最大打开文件数。例如:
ulimit -n 65535 # 设置最大打开文件数为 65535 ulimit -u 4096 # 设置最大进程数为 4096
永久修改资源限制
为了使设置永久生效,需要修改 /etc/security/limits.conf
文件。例如,设置所有用户的最大文件打开数为 65535:
* soft nofile 65535 * hard nofile 65535
调整内核参数
除了使用 ulimit
命令,还可以通过修改内核参数来优化系统性能。例如,修改 /etc/sysctl.conf
文件来调整 TCP 参数:
net.ipv4.tcp_tw_reuse = 1 # 允许将 TIME-WAIT sockets 重新用于新的 TCP 连接 net.ipv4.tcp_tw_recycle = 1 # 开启 TCP 连接中 TIME-WAIT sockets 的快速回收 net.ipv4.tcp_fin_timeout = 30 # 表示如果套接字由本端要求关闭,这个参数决定了它保持在 FIN-WAIT-2 状态的时间 net.ipv4.tcp_keepalive_time = 1200 # 表示当 keepalive 起用的时候,TCP 发送 keepalive 消息的频度
执行以下命令使内核配置立马生效:
/sbin/sysctl -p
其他优化建议
-
禁用 SELinux:如果不需要 SELinux 的强制访问控制,可以将其禁用以提高系统性能。
- 永久禁用 SELinux:
sudo vi /etc/selinux/config SELINUX=disabled sudo reboot
- 临时禁用 SELinux:
sudo setenforce 0
-
精简开机启动服务:只保留必须的服务以节省系统资源。
- 查看所有开机自启动服务:
systemctl list-unit-files --type=service --state=enabled
- 删除不必要的开机自启动服务:
sudo systemctl disable service_name
-
调整最大文件打开数:修改
/etc/security/limits.conf
文件以提高 Squid 等服务器的性能。* soft nofile 60000 * hard nofile 65535
-
设置 CPU 时间限制:如果需要限制进程的 CPU 使用时间,可以使用
ulimit -t
命令。ulimit -t 3600 # 设置 CPU 时间限制为 1 小时
通过合理调整 ulimit
设置和内核参数,可以显著提高 CentOS 服务器的性能和稳定性。需要注意的是,调整 ulimit
值时应根据实际业务需求和服务器资源进行测试,避免设置过高导致资源浪费或系统不稳定。