当前位置: 首页 > 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.gsyq.cn/news/1397878.html

相关文章:

  • 告别Animator!用Unity Playable API手撸一个轻量级动画播放器(附完整代码)
  • 储层计算与Transformer架构对比及优化策略
  • 免费在线笔记网站推荐:无需注册,电脑手机实时同步,还支持加密分享
  • Ubuntu 18.04无线网卡驱动避坑指南:以Realtek RTL8168为例,聊聊开源驱动的那些事儿
  • STM32裸机环境移植CanFestival实战:从零构建CANopen从站
  • 2026年Q2评价高地埋式污水处理设备技术选型指南:絮凝沉淀池、MBR膜生物反应器、一体化污水处理设备、厌氧反应器选择指南 - 优质品牌商家
  • 人工智能通识课:大语言模型
  • 告别Excel手工报表!Lovable低代码看板搭建全流程(含17个可复用模板)
  • 量子搜索算法:从Grover到确定性递归Oracle的演进
  • Linux文件搜索实战:从‘找不到’到‘秒定位’,我的效率提升秘籍(附常用命令清单)
  • AI 术语通俗词典:Token
  • 数据同步利器 Kettle:Windows 安装配置及基础使用详解
  • 不追新概念只做可信落地:JBoltAI让企业AI从能用变敢用
  • Unity动画师必看:用Parent Constraints替代父子关系,轻松实现角色装备的动态绑定
  • LeetCode 32:最长有效括号 | 栈与动态规划
  • 金装裁决(传世元神版)| 正版复古传世,元神合击热血归来
  • 从理论到实战:用Python复现一篇边缘计算顶会论文的完整流程(以任务卸载为例)
  • 安全左移与自主可控:Gitee Team 如何支撑关键领域行业 DevSecOps 落地
  • 3.1万Star!PageIndex:不用向量数据库,RAG准确率做到98.7%
  • 旅游API聚合响应超时频发?Lovable自研弹性熔断网关上线后P99延迟压降至187ms——架构图+Go源码片段首次公开
  • 观察taotoken在多模型聚合调用时的自动路由与故障转移效果
  • Java高级全套教程(二)—— RocketMQ超详细实战详解
  • 企业知识库的升级,不是把文档放一起,而是把知识变成能力
  • 最好用的开源问卷系统:调问DWSurvey二次开发自由,一站式搞定调研与系统集成
  • 2026年Q2乐山可靠正宗跷脚牛肉:乐山美食排行榜/乐山美食探店/乐山美食推荐/乐山美食攻略/乐山美食有哪些/乐山美食街/选择指南 - 优质品牌商家
  • 3分钟极速上手DeTikZify:科研图表自动化生成终极指南
  • FT8440AD-DRB 与PN8034/PN8036、KP3221/KP3222/KP3281对比 能否兼容?
  • vss-performance 配置与设备快照的分频拉取
  • Taotoken模型广场选型实践为你的项目找到最合适的大模型
  • 轴承PHM入门实战:基于FEMTO-ST数据集(IEEE 2012)的剩余寿命预测模型搭建