Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux性能监控与瓶颈排查命令

Linux系统性能监控与瓶颈排查的核心命令整理

作者:Csvn

服务器出问题,能最快定位根因的能力就是性能监控,Linux 自带了一套性能诊断工具链,覆盖 CPU、内存、磁盘 IO、网络四大维度,下面小编就和大家详细介绍一下吧

知识点简介

服务器出问题,能最快定位根因的能力就是性能监控。Linux 自带了一套性能诊断工具链,覆盖 CPU、内存、磁盘 IO、网络四大维度。掌握这些命令,可以在不装任何第三方工具的情况下,快速回答:「系统到底卡在哪?」

核心命令整理

1. CPU 监控

命令用途示例
top实时查看进程 CPU/内存占用top -bn1 一次性输出
htoptop 增强版(需安装)交互更友好
mpstat -P ALL 1每核 CPU 使用率,每秒刷新排查单核打满
uptime显示负载均值 load averageload > CPU核数 → 过载

top 关键字段说明:

2. 内存监控

命令用途关键参数
free -h查看内存总量/已用/可用-h 人类可读
vmstat 1 5每 1 秒采样 5 次,含内存&CPUsi/so 是 swap 换入/换出
cat /proc/meminfo内存细粒度信息含 PageCache、Slab 等

CPU + 内存二合一: 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
 2  0      0 123456  1024 456789    0    0    12    34  567  890 12  3 85  0  0

3. 磁盘 I/O 监控

命令用途关键参数
iostat -x 1磁盘 I/O 详细报告-x 扩展输出,1 每秒刷新
iotop实时看哪个进程在疯狂 IO需 root
df -h磁盘空间使用率
du -sh *当前目录大小排序配合 sort -hr 使用
lsblk查看块设备挂载关系

iostat 关键指标(关注点):

4. 网络监控

命令用途关键参数
ss -tuln查看监听端口(替代 netstat)-t TCP, -u UDP
sar -n DEV 1网卡流量实时统计
iftop进程级别带宽占用需安装
ping -c 10延迟与丢包检测

5. 历史回溯(sar 神器)

sar 是 sysstat 包提供的系统活动报告器,可以回溯过去的数据。

# 查看今天整天的 CPU 使用率
sar -u

# 查看内存使用
sar -r

# 查看磁盘 I/O
sar -b

# 查看网络流量
sar -n DEV

排查顺序建议: CPU 负载 → 内存使用 → 磁盘 I/O → 网络 → 应用日志 — 逐层排查,不要跳跃。

实操示例:5 分钟定位服务器卡顿

场景: 接到告警,某 Web 服务器响应变慢,SSH 进去操作有延迟感。

# 第一步:看整体负载
uptime
# 输出:load average: 8.12, 6.34, 3.21  → 8核CPU,负载超8,异常

# 第二步:看 CPU 分布
top -bn1 | head -5
# wa 飙到 35% → I/O 瓶颈

# 第三步:查磁盘 I/O
iostat -x 1 3
# sda:  %util 92%, await 450ms → 磁盘扛不住了

# 第四步:定位哪个进程在写磁盘
iotop -o -P
# 发现 mysqld 进程正在大量写数据

# 第五步:确认 mysql 具体问题
mysql -e "SHOW PROCESSLIST;"
# 发现一条慢查询锁表导致大量写入

# 结论:慢 SQL 锁表 → 数据库夯住 → 磁盘写入堆积 → 系统响应变慢

常见坑点 & 注意事项

  1. free -m 看到的 used 不等于真实占用 — Linux 用空闲内存做缓存(buff/cache),当应用需要时内核会释放,所以看 available 列而不是 free
  2. top 的 %CPU 可能超过 100% — 这是多核累加值,单进程跑满 8 核显示 800%
  3. 磁盘 %util 到 100% 不一定是瓶颈 — SSD 高 IOPS 场景下 100% 持续是正常的,要结合 await 看(超过 50ms 才报警)
  4. vmstatr 列 > CPU 核数 × 2 — 说明 CPU 排队严重,需要扩容或优化
  5. 不要只看瞬时值 — 用 sar 看趋势,或者用 vmstat 1 10 看 10 个采样点的平均值
  6. 别忘了系统日志 — dmesg | tail/var/log/messages 经常藏着 OOM、磁盘 I/O error 等关键线索

一句话总结: 性能排查三板斧 — uptime 看负载,top 看分布,iostat / vmstat 定维度。找到短板,对症下药。

到此这篇关于Linux系统性能监控与瓶颈排查的核心命令整理的文章就介绍到这了,更多相关Linux性能监控与瓶颈排查命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文