当前位置: 首页 > news >正文

从‘看不懂’到‘门儿清’:手把手教你解读Linux性能监控命令的输出(附真实案例)

从‘看不懂’到‘门儿清’:手把手教你解读Linux性能监控命令的输出(附真实案例)

当你第一次面对top命令满屏跳动的数字时,是否感到无从下手?就像拿到一份全英文的体检报告,每个字母都认识,却不知道哪些指标需要重点关注。本文将用医生解读化验单的视角,带你看懂Linux系统的"健康指标"。

1. 系统体检的"基础五项"

1.1 生命体征监测:top命令

想象top是系统的实时心电图,首行三个关键指标就像心跳、血压和血氧:

top - 14:30:45 up 30 days, 3:22, 2 users, load average: 1.25, 0.75, 0.50
  • 14:30:45:当前系统时间(就诊时间)
  • up 30 days:系统持续运行时间(患者年龄)
  • load average:1分钟/5分钟/15分钟平均负载(血压的三次测量值)

异常值判断标准

  • 单核CPU:负载>1需关注
  • 四核CPU:负载>4是危险信号

CPU使用率分解表:

指标正常范围异常表现可能病因
us%<60%持续高位用户程序CPU密集型
sy%<20%超过30%系统调用频繁
wa%<5%>10%磁盘I/O瓶颈
id%>30%<10%系统过载

1.2 内存透析:free与vmstat组合诊断

free -h的输出就像血常规报告:

total used free shared buff/cache available Mem: 7.7G 2.1G 3.2G 256M 2.4G 5.0G Swap: 2.0G 512M 1.5G

关键指标解读技巧:

  1. available>used:内存充足
  2. swap used持续增长:内存泄漏嫌疑
  3. buff/cache高:正常现象(系统缓存机制)

配合vmstat 2 5观察动态变化:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 524288 3245124 242332 123456 0 0 12 24 345 1234 25 5 68 2 0

重点关注:

  • si/so:swap交换频率(>0即异常)
  • cs:上下文切换次数(万级以上需优化)

2. 专科检查:I/O与网络专项

2.1 磁盘性能内窥镜:iostat

iostat -x 1 3的输出如同胃肠镜报告:

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 2.00 1.0 5.0 64.00 256.00 96.00 0.12 20.00 15.00 21.00 6.00 36.00

危险信号判断:

  1. %util>80%:磁盘满负荷
  2. await>svctm×2:I/O队列堆积
  3. avgqu-sz>1:存在等待请求

2.2 网络流量听诊器:iftop

iftop -P -n就像网络血管造影:

<= 192.168.1.1 => 140.82.121.3 2.5Mb 1.2Mb 0.8Mb <= => 91.189.91.38 1.1Mb 0.6Mb 0.4Mb

诊断要点:

  • 峰值流量接近带宽上限:网络拥堵
  • 异常IP连接:安全风险
  • 持续小包传输:可能是心跳包或攻击

3. 真实病例分析

3.1 病例一:数据库服务器卡顿

症状表现

  • top显示wa%持续90%+
  • iostat显示%util=100%,await=120ms

诊断过程

  1. 通过iotop定位到MySQL进程大量写操作
  2. vmstat发现si/so持续增长
  3. free显示可用内存不足100MB

治疗方案

# 临时缓解 sudo sysctl vm.swappiness=10 sudo service mysql restart # 长期方案 ALTER TABLE large_table ENGINE=InnoDB; -- 优化表结构

3.2 病例二:Web API响应延迟

检查结果

$ vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 8 0 0 102304 12345 654321 0 0 0 12 5678 12345 85 15 0 0 0

异常指标

  • r=8(8个进程等待CPU)
  • cs>10000(高频上下文切换)
  • us%=85(用户态CPU吃紧)

优化方案

# 调整Nginx worker配置 worker_processes auto; worker_connections 4096; keepalive_timeout 65;

4. 建立你的监控诊断工具箱

4.1 常用命令速查表

症状初诊命令深度检查可视化工具
CPU高负载top -H -p PIDperf stathtop
内存泄漏vmstat 1smem -s ussgnome-system-monitor
磁盘I/O慢iostat -x 1iotop -oPaglances
网络异常iftop -nNPnethogs eth0bmon

4.2 自制监控脚本示例

#!/bin/bash # 保存为check_health.sh LOG_FILE="/var/log/system_health.log" echo "==== $(date) ====" >> $LOG_FILE # CPU检查 echo "CPU Load:" >> $LOG_FILE uptime >> $LOG_FILE echo "Top Processes:" >> $LOG_FILE ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu | head -n 5 >> $LOG_FILE # 内存检查 echo -e "\nMemory Usage:" >> $LOG_FILE free -h >> $LOG_FILE # 磁盘检查 echo -e "\nDisk IO:" >> $LOG_FILE iostat -x 1 3 >> $LOG_FILE # 网络检查 echo -e "\nNetwork Connections:" >> $LOG_FILE ss -s >> $LOG_FILE

添加定时任务:

chmod +x check_health.sh crontab -e # 添加: */30 * * * * /path/to/check_health.sh

掌握这些诊断技巧后,下次当服务器"身体不适"时,你就能像经验丰富的医生一样,快速定位问题根源。记住,好的系统管理员不是等到故障发生才检查,而是通过定期"体检"预防问题。

http://www.jsqmd.com/news/893797/

相关文章:

  • 2026年Q2评价高地埋式污水处理设备技术选型指南:絮凝沉淀池、MBR膜生物反应器、一体化污水处理设备、厌氧反应器选择指南 - 优质品牌商家
  • 告别Excel手工报表!Lovable低代码看板搭建全流程(含17个可复用模板)
  • 深圳俄罗斯白关物流技术强的厂家有哪些
  • 人工智能通识课:大语言模型
  • Windows 10托盘图标管理进阶:除了手动隐藏,你还可以用这些方法和工具(附源码)
  • 2026年耐火材料供应厂家技术解析:耐火砖哪家好、耐火砖批发、耐火砖报价、四川耐火材料、四川耐火砖、成都耐火材料选择指南 - 优质品牌商家
  • 25道Prompt/Skill核心面试题深度解析:从基础到工程化落地,助你拿下AI高薪Offer!
  • 不追新概念只做可信落地:JBoltAI让企业AI从能用变敢用
  • 事件冒泡图解
  • Unity动画师必看:用Parent Constraints替代父子关系,轻松实现角色装备的动态绑定
  • 2026专业仿木栏杆排行:混凝土仿竹栏杆/混凝土仿藤栏杆/混凝土树桩栏杆/混凝土格栅栏杆/混凝土组合式栏杆/仿木栈道护栏/选择指南 - 优质品牌商家
  • 900V/6A N沟道功率MOSFET:FMV06N90E的SuperFAP-E3系列参数解析
  • 告别龟速搜索!用Everything搞定局域网共享文件,保姆级配置指南(含开机自启与快捷键设置)
  • 穿透式监管怎么落地?一文详解穿透式监管体系构建:8大领域、4个支柱、2条路径
  • 工厂老板如何从0开始做短视频获客?2026年制造业实战全流程指南
  • 2026年异形铝单板行业标杆名录:雕花铝单板、雕花铝板、冲孔铝单板、冲孔铝板、双曲铝单板、双曲铝板、幕墙铝单板选择指南 - 优质品牌商家
  • 别再只盯着AUC了!用Python手把手教你计算gAUC,搞定搜索推荐中的排序评估难题
  • 2026最新大数据完整学习路线
  • 485mJ雪崩能量+低噪声特性:FMH16N50E的感性负载开关与EMI优化设计
  • 2026国内医疗数据库风险监测产品排名评析——基于多架构、动态、可洞察特性
  • UOS系统更新后软件图标消失?一个命令解决,顺便聊聊dpkg的“刷新”机制
  • 3.1万Star!PageIndex:不用向量数据库,RAG准确率做到98.7%
  • 别再死记硬背了!用Python代码和可视化动画,5分钟搞懂MCMC采样到底在干什么
  • STM32MP157实战:手把手教你搞定移远EC20和高新兴ME3630的4G上网(附完整脚本)
  • VSCODE 配置文件的方法
  • 蜗轮蜗杆升降机行程可以任意加长吗?
  • 力扣HOT100(31)K 个一组翻转链表
  • 2026年 山东健康调料厂家推荐排行榜:有机/零添加/复合/轻食/儿童/网红及餐饮定制品牌深度解析 - 品牌企业推荐师(官方)
  • 初创APP用户量少,有必要提前部署DDoS防护吗?
  • Lattice LFCPNX-100 HSB+Fpga开发详解:2.2 Marvell MV-Q3244 Phy的Podl电路详解