Linux系统性能调优:从CPU到IO全面优化
当服务器出现性能瓶颈时,很多运维人员的第一反应是"加配置"。但在加配置之前,先搞清楚瓶颈到底在哪——是CPU、内存、磁盘IO还是网络?本文介绍Linux性能调优的系统方法论和常用工具。
运维与安全工作的价值,常常体现在「什么都没发生」上。「Linux系统性能调优:从CPU到IO全面优化」所涉及的监控告警与可观测体系,正是这种隐性价值的来源:体系健全时风平浪静,体系缺失时一次小问题就可能演变成大事故。
CPU调优
使用 top 查看CPU整体使用情况:us(用户态)、sy(内核态)、wa(IO等待)、st(被steal的时间)。如果 sy 过高,可能是系统调用太频繁或锁竞争。如果 wa 过高,说明IO是瓶颈。
使用 pidstat -u 1 查看每个进程的CPU使用情况。使用 perf top 查看内核热点函数。对于Java应用,使用 jstack 查看线程状态,找出CPU密集型线程在做什么。
CPU调优手段:调整进程优先级(nice/renice)、绑定CPU亲和性(taskset)、调整内核调度策略。对于高并发服务,增大文件描述符限制(ulimit -n)。
内存调优
使用 free -h 查看内存使用。关注 available 而非 free(Linux会缓存文件,free看起来少但available可能很充足)。使用 vmstat 1 查看swap使用情况,如果si/so持续大于0,说明内存不足在频繁换页。
调整内核参数:vm.swappiness(控制swap使用倾向,服务器建议设为10)、vm.dirty_ratio(脏页占内存比例,调大可提升写入性能)、vm.overcommit_memory(内存超分配策略,Redis要求设为1)。
磁盘IO调优
使用 iostat -x 1 查看磁盘IO。%util 接近100%说明磁盘饱和。await 是IO请求的平均等待时间,机械盘应低于20ms,SSD应低于5ms。
IO调优手段:调整IO调度器(SSD用noop,机械盘用deadline)、增大读预读量(blockdev --setra)、将随机IO改为顺序IO(如日志追加写入)、使用tmpfs存放临时文件。
网络调优
使用 ss -s 查看网络统计。netstat -antp | awk '{print $6}' | sort | uniq -c 查看连接状态分布。TIME_WAIT过多可以调整 net.ipv4.tcp_tw_reuse=1。增大TCP缓冲区 net.core.rmem_max 和 net.core.wmem_max。
把监控告警与可观测体系交给更专业的协作方
安徽卓牛为客户提供云上的安全加固、监控体系搭建与运维托管服务,能够结合阿里云安全与可观测产品,帮助团队建立可持续的运维安全体系,而非一次性整改。
若你希望就「Linux系统性能调优:从CPU到IO全面优化」涉及的内容做一次现状评估,可通过官网在线客服联系安徽卓牛,获取针对性建议。
一份可执行的日常清单
- 暴露面盘点:定期梳理对外端口与服务,关闭不必要的开放。
- 权限最小化:账号与密钥按最小权限分配,定期回收闲置权限。
- 告警治理:清理长期无人响应的告警,保证留下的告警都值得处理。
- 预案演练:对高频故障场景准备处置预案并定期演练。
清单不复杂,难在坚持;而监控告警与可观测体系的差距,恰恰体现在坚持上。
