CentOS系统如何优化回收性能
小樊
32
2025-12-07 18:01:20
CentOS 回收性能优化实用指南
一 内存回收与缓存优化
- 调整内存回收倾向:降低 vm.swappiness 可减少换页,优先回收页面缓存;数据库、消息队列等内存敏感负载建议设为 10–30,计算型负载可更低。查看与设置示例:
- 查看:cat /proc/sys/vm/swappiness
- 临时:sysctl -w vm.swappiness=10
- 永久:在 /etc/sysctl.conf 添加 vm.swappiness=10 后执行 sysctl -p
- 控制脏页回刷:适度提高 vm.dirty_ratio 与 vm.dirty_background_ratio 可降低写放大与抖动,顺序写/大文件场景可更积极;默认值因版本不同,建议先评估再微调。
- 示例:sysctl -w vm.dirty_background_ratio=10;sysctl -w vm.dirty_ratio=40
- 调整 VFS 缓存压力:降低 vm.vfs_cache_pressure 可更倾向保留 inode/dentry,提升路径解析命中;默认值通常为 100,可先试 50 并观察。
- 按需清理页面缓存(仅用于诊断或空间紧张,不建议长期依赖):
- 先同步:sync
- 释放:echo 1 > /proc/sys/vm/drop_caches(页缓存);echo 2(slab);echo 3(全部可回收)
- 使用 tuned 管理策略:安装并启用 tuned,选择更贴近负载的 profile(如 enterprise-storage)以统一优化内存与 I/O 行为。
二 磁盘与文件系统回收优化
- 选择 I/O 调度器:机械盘优先 deadline(延迟更可控),SSD/NVMe 优先 noop(减少调度开销);查看与设置示例:
- 查看:cat /sys/block/sdX/queue/scheduler
- 设置:echo noop > /sys/block/sdX/queue/scheduler(按设备调整)
- 调整队列与预读:适度增大 nr_requests(队列深度)与 read_ahead_kb(预读)可提升吞吐与顺序读性能;示例:
- echo 512 > /sys/block/sdX/queue/nr_requests
- echo 4096 > /sys/block/sdX/queue/read_ahead_kb(或用 blockdev --setra 调整)
- 挂载选项减负:为不依赖访问时间的场景启用 noatime,nodiratime,减少元数据写入;示例:
- /dev/sda1 / ext4 defaults,noatime,nodiratime 0 0
- 文件系统选择:大文件/高并发元数据场景优先考虑 XFS 等更擅长扩展性的文件系统。
三 连接与端口回收优化
- 复用与快速回收 TCP 连接:在 /etc/sysctl.conf 中启用
- net.ipv4.tcp_tw_reuse = 1(允许将处于 TIME_WAIT 的套接字用于新的连接)
- net.ipv4.tcp_fin_timeout = 30(缩短 FIN_WAIT_2 超时)
- 注意:在 NAT/负载均衡 或跨主机环境中,谨慎使用 tcp_tw_recycle,避免时间戳问题导致连接异常。
- 扩大连接队列与端口范围:
- net.core.somaxconn = 65535
- net.ipv4.tcp_max_syn_backlog = 8192
- net.ipv4.ip_local_port_range = 1024 65535
- 应用层配合:合理设置 keepalive(如 net.ipv4.tcp_keepalive_time=1200)、连接池与超时,减少短连接与半开连接堆积。
四 磁盘空间回收与日志管理
- 清理包管理器缓存与无用包:
- yum clean all
- yum autoremove
- 删除旧内核(保留最近 2 个):package-cleanup --oldkernels --count=2
- 日志轮转与归档压缩:配置 /etc/logrotate.conf 或应用专属配置,使用 rotate、weekly、compress、delaycompress、missingok、notifempty 等策略,避免日志无限增长。
- 定向清理大日志与临时文件:
- 截断超大日志:find /var/log -type f -name “*.log” -size +50M -mtime +7 -exec truncate -s 0 {} ;
- 删除过期日志:find /var/log -type f -name “*.log” -mtime +30 -exec rm -f {} ;
- 清理临时目录:rm -rf /tmp/;必要时清理 /var/tmp/yum-
- 空间巡检:df -h、du -h --max-depth=1 /var 定位占用热点。
五 监控与验证
- 资源与缓存观测:
- 内存与缓存:free -h、vmstat 1、sar -r
- I/O 与调度:iostat -x 1、cat /sys/block/sdX/queue/scheduler
- 变更流程与风险提示:
- 先在测试环境验证,变更前后使用相同基准测试对比 p95/p99 延迟、吞吐、IOPS、换页与回收抖动。
- 对数据库、消息队列等核心负载,优先“降 swappiness、稳脏页回刷、扩队列/预读”,再考虑调度器与挂载选项。
- 不建议长期依赖 drop_caches 作为“提速手段”,仅在定位与应急场景使用。