CentOS系统调优指南:从基础到进阶的优化步骤
在开始调优前,需确保系统处于最新状态并清理无用文件,避免旧版本bug和冗余资源占用:
sudo yum update -y安装最新安全补丁和功能改进;使用sudo yum clean all清理YUM缓存,释放磁盘空间。/tmp、/var/tmp目录下的临时文件(可使用rm -rf /tmp/*);通过journalctl --vacuum-size=100M限制日志文件大小,避免日志膨胀。内核参数决定了系统的资源分配与处理逻辑,需根据服务器用途(如Web服务、数据库)调整:
/etc/sysctl.conf文件,添加或修改以下关键参数:
net.ipv4.tcp_tw_reuse = 1(重用TIME-WAIT连接,减少端口占用)、net.core.somaxconn = 65535(增加TCP连接队列长度,应对高并发)、net.ipv4.tcp_max_syn_backlog = 8192(提升SYN请求处理能力);vm.swappiness = 10(降低Swap使用倾向,优先使用物理内存)、vm.vfs_cache_pressure = 50(控制内核回收缓存文件的频率,减少磁盘I/O);fs.file-max = 100000(增加系统最大文件描述符数,支持更多并发连接)。sudo sysctl -p加载修改后的参数。磁盘I/O是系统性能的常见瓶颈,可通过以下方式优化:
/etc/fstab文件,为根分区或数据分区添加noatime(不记录文件访问时间)、nodiratime(不记录目录访问时间)选项,减少不必要的磁盘写入(例如:/dev/sda1 / ext4 defaults,noatime,nodiratime 0 1)。iotop工具实时查看进程的磁盘读写情况,识别高I/O消耗的进程(如数据库、备份任务)。网络优化需针对服务器的网络角色(如Web服务器、数据库服务器)调整:
/etc/sysctl.conf中设置net.ipv4.tcp_fin_timeout = 30(缩短TIME-WAIT状态的超时时间,快速释放端口)、net.ipv4.tcp_window_size = 1024000(增大TCP窗口大小,提升吞吐量)。ethtool -l eth0查看网卡支持的多队列数量,若支持则启用(例如:ethtool -L eth0 combined 8),提升多核CPU处理网络请求的能力。根据服务器运行的服务(如Nginx、MySQL、Redis),调整其配置文件以提升性能:
systemctl list-units --type=service列出所有服务,停止并禁用不需要的服务(如firewalld、NetworkManager,若不需要防火墙可执行sudo systemctl stop firewalld && sudo systemctl disable firewalld)。worker_processes(设置为CPU核心数,如worker_processes 4)、worker_connections(每个worker的最大连接数,如worker_connections 1024),提升并发处理能力。innodb_buffer_pool_size(InnoDB缓冲池大小,设置为物理内存的50%-70%,如innodb_buffer_pool_size = 4G)、max_connections(最大连接数,根据应用需求设置,如max_connections = 200),减少磁盘I/O并提升数据库响应速度。调优不是一次性任务,需通过监控工具持续跟踪系统性能,识别新的瓶颈:
top(查看CPU、内存占用)、htop(更直观的资源监控)、vmstat(查看系统整体状态,如进程、内存、I/O)、iostat(查看磁盘I/O统计)等工具,实时了解系统资源使用情况。ab(Apache Benchmark,例如ab -n 1000 -c 100 http://localhost/)或wrk(高性能HTTP压测工具,例如wrk -t4 -c100 -d10s http://localhost/)模拟高并发请求,测试服务器的QPS(每秒查询数)、响应时间等指标。cp /etc/sysctl.conf /etc/sysctl.conf.bak),避免配置错误导致系统故障。/etc/sysctl.conf、/etc/fstab)和业务数据,防止误操作导致数据丢失。/etc/selinux/config并执行setenforce 0,但要评估安全风险)。