CentOS系统调优指南
系统调优是提升CentOS服务器性能、稳定性及响应速度的关键手段,需结合硬件配置、系统参数、服务管理等维度综合实施。以下是具体优化方向及操作步骤:
硬件是系统运行的底层支撑,优先升级或优化硬件资源:
free -m显示available内存低),可通过增加物理内存减少Swap使用,提升应用运行效率。smartctl -a /dev/sda(需安装smartmontools)监控硬盘健康状态,提前预警坏道风险;通过top、htop监控CPU使用率,避免过热降频。内核参数直接影响系统资源(网络、内存、进程)的管理效率,需根据业务场景调整/etc/sysctl.conf文件:
# 开启TCP重用,减少TIME_WAIT连接占用
net.ipv4.tcp_tw_reuse = 1
# 开启TCP回收,快速释放TIME_WAIT连接(生产环境谨慎使用,可能导致连接异常)
net.ipv4.tcp_tw_recycle = 1
# 减少TIME_WAIT超时时间(默认60秒)
net.ipv4.tcp_fin_timeout = 30
# 扩大本地端口范围,支持更多并发连接
net.ipv4.ip_local_port_range = 1024 65535
# 增大SYN队列长度,应对高并发连接请求
net.ipv4.tcp_max_syn_backlog = 8192
# 增大连接跟踪表大小,避免连接数过多导致丢包
net.ipv4.tcp_max_tw_buckets = 5000
# 开启SYN Cookie,防止SYN Flood攻击
net.ipv4.tcp_syncookies = 1
应用更改:sudo sysctl -p。# 控制系统使用Swap的倾向(值越小越倾向于使用物理内存,建议10-30)
vm.swappiness = 10
# 调整脏页写入磁盘的阈值(当脏页占内存比例达到5%时,后台开始写入;达到10%时强制写入)
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
使设置永久生效:将上述参数添加至/etc/sysctl.conf。文件系统是数据存储的核心,合理的挂载选项能减少磁盘IO开销:
ext4(兼容性好)或XFS(高性能,适合大文件存储),安装时选择对应文件系统类型。/etc/fstab,添加noatime(不更新文件访问时间)、nodiratime(不更新目录访问时间)选项,减少不必要的磁盘写入:/dev/sda1 / ext4 defaults,noatime,nodiratime 0 1
fsck命令检查文件系统完整性(需卸载分区);使用xfs_growfs(XFS)或resize2fs(ext4)扩展文件系统容量(需磁盘扩容)。systemctl命令停止并禁用不需要的服务(如firewalld、postfix等),减少系统后台进程的资源占用:sudo systemctl stop firewalld
sudo systemctl disable firewalld
nice命令启动低优先级进程(nice -n 10 command),或使用renice命令调整已运行进程的优先级(renice 10 -p PID),确保关键进程获得更多CPU资源。deadline适合机械硬盘,noop适合SSD),编辑/etc/default/grub添加elevator=deadline(或elevator=noop),运行grub2-mkconfig -o /boot/grub2/grub.cfg更新GRUB配置。cat /sys/block/sda/queue/scheduler(方括号内为当前使用的调度器)。net.ipv4.tcp_window_size)可提升网络吞吐量,适合高带宽网络环境。ethtool -l eth0检查网卡是否支持多队列(Combined值大于1),使用ethtool -L eth0 combined 8启用多队列(需网卡驱动支持),提升多核CPU处理网络请求的能力。innodb_buffer_pool_size(设置为物理内存的50%-70%,用于缓存数据和索引)、query_cache_size(开启查询缓存,适合读多写少场景);优化SQL查询(添加索引、避免SELECT *)。worker_processes(设置为CPU核心数)、keepalive_timeout(保持连接时间,默认75秒,可根据业务调整);调整Apache的MaxClients(最大并发连接数,默认150,可根据内存调整)。top(查看CPU、内存使用率)、htop(更直观的进程管理)、vmstat(查看系统整体性能)、iostat(查看磁盘IO)等工具实时监控系统状态。journalctl --vacuum-size=100M清理旧日志(限制日志文件大小);定期分析/var/log/messages、应用日志(如Nginx的access.log),找出性能瓶颈(如频繁的404请求、慢查询)。yum clean all清理YUM缓存;使用package-cleanup --oldkernels --count=2删除旧内核(保留最新的2个);使用find /var/log -type f -name "*.log" -size +50M -mtime +7 -exec truncate -s 0 {} \;截断大日志文件(超过50MB且7天未修改)。/etc/sysctl.conf、/etc/fstab)和业务数据,防止误操作导致数据丢失。net.ipv4.tcp_max_syn_backlog,大数据应用需调整vm.dirty_ratio),无通用模板。