Linux性能排查实战:从“系统慢”到精准定位
检查ESTAB(正常连接)和TIME-WAIT(等待关闭)是否过多。:•us高:应用自己算得多。•wa高:CPU在等I/O,该去查磁盘。:等待运行的进程数。持续大于CPU核数,说明CPU不够用了。复杂的逻辑,一张图就够了。:I/O平均响应时间(ms),越大越“卡”。遇到性能问题,别乱试。(交换分区)时,才是真危机,性能会暴跌。-n DEV:看网卡。:实时看到哪个进程在读/写磁盘。:进出口流量,判断
一、核心思路:先找方向,再抓元凶
遇到性能问题,别乱试。记住这个黄金三步法:
- 定方向:是CPU、内存、磁盘I/O,还是网络的问题?
- 抓进程:是哪个具体进程在“搞事情”?
- 下结论:资源不足?程序BUG?还是配置有误?
二、CPU排查:谁在疯狂计算?
|
命令 |
关键参数/操作 |
核心看什么 |
|---|---|---|
|
top |
运行后按1(看各核),P(按CPU排序),M(按内存排序) |
%Cpu(s)行:•us高:应用自己算得多。•wa高:CPU在等I/O,该去查磁盘。 |
|
pidstat -u 1 |
-u:看CPU。1:每秒采样1次。 |
%CPU列:精准找到高CPU消耗的进程ID(PID)。 |
|
vmstat 1 |
1:每秒输出一行。 |
r列:等待运行的进程数。持续大于CPU核数,说明CPU不够用了。 |
三、内存排查:真的内存不足?
Linux爱用空闲内存做缓存(Cached),所以看内存要“聪明点”。
|
命令 |
关键参数 |
核心看什么 |
|---|---|---|
|
free -h |
-h:用G/M显示,好读。 |
available列:系统真正可用的内存。只关心这个数。 |
|
pidstat -r 1 |
-r:看内存。 |
RSS列:进程实际占用的物理内存,找“内存大户”。 |
📌 重要经验:看到free内存少别慌,看available。只有它快没了,且开始用Swap(交换分区)时,才是真危机,性能会暴跌。
四、磁盘I/O排查:找到拖后腿的“慢盘”
|
命令 |
关键参数/操作 |
核心看什么 |
|---|---|---|
|
iostat -x 1 |
-x:看详细指标。1:每秒刷新。 |
•%util:磁盘使用率。>80%就很忙。•await:I/O平均响应时间(ms),越大越“卡”。 |
|
iotop |
运行后按o:只显示活跃I/O进程。 |
DISK READ/WRITE列:实时看到哪个进程在读/写磁盘。 |
五、网络排查:连接堵了还是带宽满了?
|
命令 |
关键参数 |
核心看什么 |
|---|---|---|
|
ss -antp |
-a:所有。-t:TCP。-p:显示进程。 |
连接状态:检查ESTAB(正常连接)和TIME-WAIT(等待关闭)是否过多。 |
|
sar -n DEV 1 |
-n DEV:看网卡。1:每秒采样。 |
rxkB/s,txkB/s:进出口流量,判断带宽是否打满。 |
六、📦 最小化安装必备(CentOS 7)
很多命令默认没有,先装好:
代码语言:bash
AI代码解释
# 安装性能工具包(含iostat, pidstat, sar等)
yum install -y sysstat
# 安装进程级IO监控工具
yum install -y iotop
七、终极心法:一张图看懂排查路径
复杂的逻辑,一张图就够了。按这个顺序来,思路永不乱:心法精髓:top是总览仪表盘,告诉你哪里亮红灯;pidstat/iotop是精准探测器,深入问题区域抓出具体进程。
更多推荐



所有评论(0)