centos

CentOS性能如何提升技巧

小樊
55
2025-11-01 19:58:33
栏目: 智能运维

一、系统基础优化

  1. 关闭不必要的服务:通过systemctl stop [service_name]停止非必需服务(如firewalldNetworkManager),再用systemctl disable [service_name]禁用开机自启,减少后台进程对CPU、内存的占用。
  2. 更新系统与软件包:定期执行sudo yum update -y更新系统内核及软件包,修复漏洞并提升兼容性与性能;清理YUM缓存(sudo yum clean all)释放磁盘空间。
  3. 调整内核参数:编辑/etc/sysctl.conf文件,添加或修改以下关键参数优化网络与内存性能:
    • net.ipv4.tcp_tw_reuse = 1(重用TIME-WAIT连接)、net.ipv4.tcp_fin_timeout = 30(缩短FIN等待时间);
    • vm.swappiness = 10(降低Swap使用倾向,优先使用物理内存);
      执行sudo sysctl -p使配置生效。

二、硬件资源优化

  1. 升级硬件配置:增加物理内存(减少Swap使用)、更换高性能CPU(提升计算能力)、使用SSD替代HDD(显著提升磁盘I/O速度)。
  2. 优化Swap分区:若内存不足,创建额外Swap分区(sudo mkswap /dev/sdb1sudo swapon /dev/sdb1),并修改/etc/fstab实现开机自动挂载;即使内存充足,也应设置vm.swappiness=10避免过度使用Swap。

三、文件系统优化

  1. 选择高效文件系统:优先使用XFS(支持高并发、大文件处理)或ext4(稳定成熟),替换传统ext3文件系统。
  2. 调整挂载选项:编辑/etc/fstab,为根分区添加noatime,nodiratime选项(禁止记录文件访问时间),减少不必要的磁盘写入。
  3. 优化I/O调度器:根据磁盘类型选择调度器(机械硬盘用deadline、固态硬盘用noop),通过echo deadline > /sys/block/sda/queue/scheduler临时修改,修改/etc/default/grub并执行grub2-mkconfig永久生效。

四、内存管理优化

  1. 调整Swappiness值:通过sysctl vm.swappiness=10设置(范围0-100,值越小越倾向于使用物理内存),减少Swap分区使用,提升系统响应速度。
  2. 清理内存缓存:定期执行sync && echo 3 > /proc/sys/vm/drop_caches(需root权限)清理页面缓存、目录项和inode缓存,释放内存供前台进程使用。

五、网络性能优化

  1. 调整TCP参数:编辑/etc/sysctl.conf,优化以下参数提升网络吞吐量与连接效率:
    • net.core.somaxconn = 65535(增加监听队列长度)、net.ipv4.tcp_max_syn_backlog = 65535(增加SYN队列长度);
    • net.ipv4.tcp_window_size = 10240000(增大TCP窗口大小,提升大数据量传输效率);
      执行sudo sysctl -p使配置生效。
  2. 启用网卡多队列:通过ethtool -l eth0检查网卡是否支持多队列(Supported multi-queue mode: on),若支持则用ethtool -A eth0 on启用,提升多核CPU处理网络请求的能力。

六、服务与应用优化

  1. 关闭无用服务:使用systemctl list-unit-files --state=enabled列出所有开机自启服务,禁用不必要的服务(如cups打印服务、avahi-daemon零配置网络服务)。
  2. 优化服务配置:针对高频服务(如Nginx、MySQL)调整配置文件:
    • Nginx:增加worker_processes(设置为CPU核心数)、worker_connections(每个进程的最大连接数);
    • MySQL:调整innodb_buffer_pool_size(设置为物理内存的50%-70%,提升InnoDB引擎性能)、max_connections(根据并发需求调整)。

七、清理与维护

  1. 清理临时文件:定期删除/tmp/var/tmp目录下的临时文件(sudo rm -rf /tmp/*sudo rm -rf /var/tmp/*),释放磁盘空间。
  2. 删除无用软件包:使用sudo yum list installed列出所有已安装软件包,删除不再使用的软件包(sudo yum remove package_name);使用sudo yum autoremove自动删除无依赖的软件包。
  3. 清理日志文件:使用journalctl --vacuum-size=100M限制日志文件大小(保留最近100M);通过find /var/log -type f -name "*.log" -size +50M -mtime +7 -exec truncate -s 0 {} \;截断超过50M且7天未修改的日志文件;设置日志轮转(sudo logrotate /etc/logrotate.conf)自动管理日志。

0
看了该问题的人还看了