零基础也能用的Linux服务器性能分析工具指南
先装好这些基础工具
绝大多数Linux发行版默认已安装top、vmstat、iostat等工具,但htop和sar需要额外安装。
在CentOS/Debian上分别执行:
# CentOS/RHEL
sudo yum install -y htop sysstat
# Ubuntu/Debian
sudo apt install -y htop sysstat
sysstat 包提供sar、iostat、mpstat等工具,装好后通过 systemctl start sysstat 启动数据采集。
用top和htop快速看CPU和内存
直接输入 top 就能看到进程列表和系统概况。
重点关注 %CPU 和 %MEM 两列,如果某个进程CPU持续超过80%,说明它可能吃光资源。
按 P 按CPU使用率排序,按 M 按内存排序。
htop是top的增强版,显示更友好。
输入 htop,按F6选排序字段,用鼠标可以直接点。内存占用条变红通常表示物理内存不足。
用vmstat和iostat查磁盘与系统瓶颈
vmstat 1 每秒输出一次系统整体状态。
主要看 r(等待CPU的进程数)、b(不可中断睡眠进程)、si/so(swap换入换出,非零则内存紧张)。
iostat -x 1 看磁盘详细情况。%util 接近100%说明磁盘饱和,await 过高(超过几十ms)意味着响应慢。
如果 svctm 远小于 await,说明有大量I/O排队。
用netstat和sar排查网络与历史负载
netstat -tunlp 列出所有监听端口及对应进程。
比如发现异常端口监听,立刻用 lsof -i:端口号 查进程。
sar 能看历史数据。sar -u 1 3 看CPU趋势,sar -r 看内存,sar -b 看磁盘IO,sar -n DEV 1 看网络吞吐。一次排查时先看 sar -q,
负载均值(load average)超过CPU核数两倍以上说明过载。
避坑:数据解读的3个常见误区
- CPU高不等于有问题:如果是业务进程正常处理请求,CPU 100%反而是好事;要看是否伴随大量等待(wa比例)。
- 内存使用率90%不一定危险:Linux会缓存文件,
free -h看available列才是真实可用内存。 - iostat的%util接近100%但响应不慢:可能是SSD或RAID卡处理能力强,需结合await判断,不能只看%util。
效果验证:一个完整的压测检查流程
在空机或低峰期,用 stress 模拟压力(sudo apt install stress),然后依次运行上述工具:
- 运行
stress --cpu 4 --timeout 30,同时top可见多个进程CPU跑到100%,load average会飙升。 - 运行
stress --vm 2 --vm-bytes 256M,free -h可见used增加,vmstat 1的si/so可能非零(若内存不足)。 - 运行
stress --io 4,iostat -x 1的%util上升。
每次压力结束后,用 sar -u -s HH:MM:SS -e HH:MM:SS 回顾历史数据,对比能看到负载曲线。
能准确读出这些数据,说明你已经掌握了Linux服务器性能分析工具的基本用法。