Linux性能优化需坚持“找准瓶颈、按需调优、避免过度”,重点做好资源监控(top/iotop/vmstat/sar)、服务精简(禁用无用服务、关闭图形界面)、I/O与内存调优(SSD调度器、swappiness、脏页参数)及日志轻量化(挂载选项、journald限制)。

Linux性能优化不是一蹴而就的事,核心在于“找准瓶颈、按需调优、避免过度”。盲目修改内核参数或关闭服务反而可能降低稳定性。重点应放在资源监控、服务精简、I/O与内存管理这三块上。
实时监控,先看哪里卡
别猜,用工具说话。top、htop能快速看CPU和内存占用;iotop和iostat专盯磁盘I/O是否饱和;vmstat可综合观察内存换页、上下文切换、中断等关键指标。建议搭配sar(sysstat包)做历史回溯,比如查昨天下午3点的负载突增原因。
- 运行sar -u 1 5每秒采样一次,共5次,看CPU使用分布
- 用iotop -o只显示正在做I/O的进程,定位“磁盘杀手”
- 检查cat /proc/meminfo | grep -i "active\|inactive\|swap"了解内存实际压力
精简启动项和服务
很多服务器默认装了没用的服务:bluetooth、cups、avahi-daemon、firewalld(若已用云厂商安全组或iptables替代)。systemd环境下用systemctl list-unit-files --state=enabled查看所有开机自启项,再逐个评估。
- 禁用无用服务:sudo systemctl disable cups-browsed.service
- 关闭图形相关组件(纯命令行服务器):sudo systemctl set-default multi-user.target
- 检查开机耗时:systemd-analyze blame,排在前面的可能是慢启动服务
合理配置I/O与内存行为
机械硬盘(HDD)和SSD适用不同调度策略;内存不足时swappiness值过高会导致频繁swap,影响响应速度。这些不是“越小越好”或“越大越好”,得结合 workload 调整。
- SSD推荐用noop或kyber调度器:echo kyber | sudo tee /sys/block/nvme0n1/queue/scheduler
- 降低swap倾向(默认60):sudo sysctl vm.swappiness=10,并写入/etc/sysctl.conf持久化
- 对高并发IO场景,增大脏页刷新阈值可减少突发写阻塞:vm.dirty_ratio=30、vm.dirty_background_ratio=5
文件系统与日志轻量化
ext4默认挂载选项较保守,XFS在大文件和并发读写中更稳;journal日志过多会占空间且拖慢系统。适当限制日志大小和保留周期,既保排查能力又不拖后腿。
- 挂载SSD时加noatime,nodiratime,discard(如支持TRIM)
- 限制journald日志:sudo mkdir -p /etc/systemd/journald.conf.d,新建limit.conf写入SystemMaxUse=200M、MaxRetentionSec=2week
- 定期清理旧日志:sudo journalctl --vacuum-size=100M
基本上就这些——监控是起点,减法是基础,参数调整是补充。不需要全盘重配,每次改一项、验证效果,比堆砌技巧更有效。











