centos

如何通过ulimit优化centos服务器性能

小樊
44
2025-04-06 17:52:08
栏目: 云计算

通过 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

其他优化建议

  1. 禁用 SELinux:如果不需要 SELinux 的强制访问控制,可以将其禁用以提高系统性能。

    • 永久禁用 SELinux:
    sudo vi /etc/selinux/config
    SELINUX=disabled
    sudo reboot
    
    • 临时禁用 SELinux:
    sudo setenforce 0
    
  2. 精简开机启动服务:只保留必须的服务以节省系统资源。

    • 查看所有开机自启动服务:
    systemctl list-unit-files --type=service --state=enabled
    
    • 删除不必要的开机自启动服务:
    sudo systemctl disable service_name
    
  3. 调整最大文件打开数:修改 /etc/security/limits.conf 文件以提高 Squid 等服务器的性能。

    * soft nofile 60000
    * hard nofile 65535
    
  4. 设置 CPU 时间限制:如果需要限制进程的 CPU 使用时间,可以使用 ulimit -t 命令。

    ulimit -t 3600  # 设置 CPU 时间限制为 1 小时
    

通过合理调整 ulimit 设置和内核参数,可以显著提高 CentOS 服务器的性能和稳定性。需要注意的是,调整 ulimit 值时应根据实际业务需求和服务器资源进行测试,避免设置过高导致资源浪费或系统不稳定。

0
看了该问题的人还看了