CentOS卡顿怎么优化
小樊
40
2025-12-09 18:28:34
CentOS 卡顿优化实操指南
一 快速定位瓶颈
- 先用以下命令确认是 CPU、内存、磁盘 I/O 还是网络 导致的卡顿,再对症优化:
- 整体资源与负载:top/htop、uptime、free -h、vmstat 1 5、iostat -x 1、df -h、du -sh /var /tmp /home
- 网络与连接:ss -s、iftop、nload
- 历史与可视化:sar -u/-r/-d/-n DEV 1(需安装 sysstat)、nmon、glances、dstat
- 若需长期观测与告警,可部署 Prometheus + Grafana 或 Zabbix;本机也可用 Cockpit 做 Web 化监控。
二 通用系统优化
- 更新与清理
- 执行 yum update -y 获取性能修复与安全补丁;定期 yum clean all 清理缓存;清理 /var/log/ 下增长过快的日志并用 logrotate 管理;用 ncdu/du 找出大文件与目录。
- 精简开机与常驻服务
- 用 systemctl list-unit-files --type=service 查看服务,禁用不需要的如 bluetooth(示例:systemctl disable --now bluetooth);减少图形会话或改用 XFCE/LXDE 等轻量桌面。
- 文件系统与挂载选项
- 对 ext4 使用 noatime,nodiratime,对 XFS 使用 noatime,减少元数据写入;按需检查并优化 ext4 参数(如通过 tune2fs),并定期执行文件系统检查(如 fsck)。
- 内核与资源限制
- 调整虚拟内存:在 /etc/sysctl.conf 设置 vm.swappiness=10、vm.vfs_cache_pressure=50,执行 sysctl -p 生效。
- 提升文件描述符:在 /etc/security/limits.conf 增加
-
-
- hard nofile 65535
重新登录后生效,可用 ulimit -n 验证。
- 可选的网络优化(高并发服务场景):在 /etc/sysctl.conf 增加
- net.core.somaxconn = 65535
- net.ipv4.tcp_max_syn_backlog = 65535
- net.ipv4.ip_local_port_range = 1024 65535
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_fin_timeout = 30
执行 sysctl -p 生效。
三 存储与文件系统优化
- 优先使用 SSD 替代 HDD,可显著改善 I/O 响应与抖动。
- 选择适合业务的文件系统(如 XFS/ext4),并按需调整挂载选项(如 noatime),减少不必要的访问时间更新与写放大。
- 规划合理的 swap(容量与策略),避免内存紧张时直接 OOM 或抖动;结合 vm.swappiness 控制换页倾向。
- 定期巡检与维护:清理无用文件、归档与压缩旧日志、对关键分区执行周期性 fsck 检查,确保元数据与磁盘健康。
四 网络与高并发场景优化
- 连接与端口复用
- 在高并发短连接服务中,启用 net.ipv4.tcp_tw_reuse=1、适当降低 net.ipv4.tcp_fin_timeout=30,并放大 net.core.somaxconn 与 net.ipv4.tcp_max_syn_backlog,提升连接处理能力。
- 端口与本地端口范围
- 扩大 net.ipv4.ip_local_port_range=1024 65535,缓解端口耗尽。
- 安全与加固的平衡
- 不建议直接关闭 firewalld;如为排障临时关闭,务必在验证后恢复,避免暴露面扩大。
- 可视化与持续观测
- 结合 iftop/nload 观察带宽与突发流量,用 sar -n DEV 回溯历史网络负载,必要时上 Prometheus + Grafana 做长期趋势与阈值告警。
五 硬件升级与架构优化
- 资源扩容
- 常驻内存不足时优先 增加内存;I/O 成为瓶颈时优先 更换为 SSD;CPU 计算密集可考虑 多核/更高主频 或负载均衡分流。
- 应用层优化
- 引入 Redis/Memcached 等缓存,减少数据库直读;优化慢查询与索引;合理配置连接池与工作线程数。
- 架构与隔离
- 通过 虚拟化(KVM/Xen)或容器(Docker) 做资源隔离与弹性伸缩,避免单服务拖垮整机。
- 变更风险控制
- 任何参数调整与升级前先 备份,在 测试环境验证;变更后持续 监控与回滚预案,确保稳定性。