温馨提示×

怎么监控linux进程资源

小樊
41
2026-09-03 11:22:57
栏目: 智能运维

监控 Linux 进程资源,常见方式从命令行工具系统化监控方案都有,下面按使用场景给你一个清晰总结。


一、快速查看(命令行)

1. top / htop(实时查看)

top
htop   # 更友好,需安装
  • 查看:CPU、内存、进程状态
  • P 按 CPU 排序,M 按内存排序

2. ps(快照查看)

ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%cpu | head
  • 适合脚本或一次性查看

3. free(内存)

free -h

二、按进程详细监控

4. pidstat(强烈推荐)

pidstat -u -r -d -p <PID> 1
  • -u CPU
  • -r 内存
  • -d 磁盘 IO

5. /proc/<PID>/

cat /proc/<PID>/status
cat /proc/<PID>/statm
  • 原始、精确
  • 适合写监控脚本

三、资源限制与异常发现

6. ulimit

ulimit -a
  • 限制进程资源(CPU、内存、文件数)

7. systemd 资源控制

[Service]
MemoryMax=500M
CPUQuota=50%
systemctl status <service>

四、长期 / 自动化监控

8. atop(历史回放)

apt install atop
atop
  • 可查看过去资源使用

9. Prometheus + Node Exporter

  • 微服务 / 服务器集群标准方案
  • 可监控:
    • CPU
    • 内存
    • 进程级指标

10. cgroups(底层控制)

  • Docker / Kubernetes 基础
  • 精确限制和统计进程资源

五、实战示例

监控某个进程的 CPU 和内存

pidstat -u -r -p $(pgrep nginx) 2

找出最耗资源的进程

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

六、推荐组合

场景 工具
临时排查 top / htop
精确分析 pidstat
长期监控 Prometheus
容器环境 cgroups + docker stats

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

  • 单台服务器还是集群
  • 关注 CPU / 内存 / IO / 网络 哪一类
  • 是否需要报警

我可以帮你定制一套监控方案或脚本。

0