温馨提示×

如何监控linux进程性能

小樊
52
2026-10-21 01:57:14
栏目: 智能运维

在 Linux 下监控进程性能,可以从命令行工具、系统机制、可视化方案三个层面来做。下面按“从简到深”给你一个实用指南。


一、最常用命令行工具(实时/交互)

1. top / htop(CPU、内存、负载)

top
htop   # 需安装,更友好

关注字段:

  • %CPU、%MEM
  • RES(物理内存)
  • LOAD AVERAGE

✅ 适合:快速看哪个进程吃资源


2. ps(一次性快照)

ps -eo pid,ppid,user,%cpu,%mem,comm --sort=-%cpu | head

常用组合:

  • 按 CPU 排序
  • 按内存排序
  • 查看某进程子线程

3. pidstat(进程级详细统计)⭐ 强烈推荐

pidstat -u -r -d 1

参数说明:

  • -u:CPU
  • -r:内存
  • -d:磁盘 IO
  • 1:每秒刷新

✅ 适合:定位 CPU / 内存 / IO 瓶颈


4. vmstat(系统整体)

vmstat 1

看:

  • us / sy / id
  • si / so(交换)
  • bi / bo(IO)

二、专项性能监控

1. CPU 使用细节

mpstat -P ALL 1

看每个核心负载是否均衡


2. 内存 & 交换

free -h
cat /proc/<pid>/status

关键字段:

  • VmRSS(真实内存)
  • VmSize

3. 磁盘 IO

iostat -x 1
iotop

看:

  • 哪个进程在狂写磁盘
  • await / util 是否过高

4. 网络

iftop
nload
ss -tanp

三、深入级(系统调用 & 内核)

1. strace(系统调用)

strace -p <pid>
strace -c -p <pid>

看:

  • 是否在频繁 syscall
  • 是否在卡在 read/write

2. perf(性能分析神器)⭐

perf top
perf record -p <pid>
perf report

可看:

  • CPU 热点函数
  • 内核态/用户态占比

3. /proc 文件系统(程序化监控)

/proc/<pid>/stat
/proc/<pid>/statm
/proc/<pid>/io

✅ 适合写监控脚本


四、长期监控 & 可视化

1. 轻量方案

  • sar(历史记录)
sar -u 1 3

2. 图形化

  • Prometheus + Node Exporter + Grafana
  • Netdata(开箱即用)
  • Zabbix

五、典型排障思路(实战)

CPU 高

  • top → pidstat → perf

内存涨

  • free → pidstat -r → /proc/pid/status

卡顿但 CPU 低

  • iostat / strace(IO 或锁)

如果你愿意,可以告诉我:

  • 是 服务器 / 容器 / 嵌入式
  • 关注 CPU / 内存 / IO / 网络
  • 是否需要 脚本或自动化监控

我可以直接给你一套可落地的方案。

0 踩