温馨提示×

linux进程怎么监控

小樊
40
2026-09-06 15:34:00
栏目: 智能运维

在 Linux 下“监控进程”可以从查看当前进程、实时监控、资源占用、自动告警、进程存活保活几个层面来做。下面按常见场景给你一个实用清单。


一、基础查看类(一次性 / 交互式)

1. ps —— 查看进程快照

ps aux
ps -ef
ps -ef | grep nginx

常见字段:

  • %CPU / %MEM:CPU、内存占用
  • STAT:进程状态(R/S/D/Z 等)
  • PID:进程号

2. top —— 实时查看

top
  • P:按 CPU 排序
  • M:按内存排序
  • 1:查看多核 CPU

3. htop(推荐)

htop

更友好,支持:

  • 颜色显示
  • 鼠标操作
  • 树状结构
  • 快捷键 kill 进程

安装:

yum install htop     # CentOS
apt install htop     # Ubuntu

二、资源 & 性能监控

4. uptime —— 负载

uptime

load average(1 / 5 / 15 分钟)


5. vmstat —— 系统整体

vmstat 1

关注:

  • r:运行队列
  • si/so:swap 使用
  • us/sy:用户 / 系统 CPU

6. pidstat —— 单进程监控(很实用)

pidstat -p 12345 1
pidstat -u -p 12345 1
pidstat -r -p 12345 1

监控:

  • CPU
  • 内存
  • IO

7. strace —— 系统调用监控

strace -p 12345

适合排查:

  • 卡死
  • 频繁 syscall
  • 文件 / 网络阻塞

三、进程存活 & 自动监控

8. systemd(最推荐)

如果是服务进程:

systemctl status nginx
journalctl -u nginx

可配置:

  • 自动重启
  • 失败告警
  • 开机自启

示例:

[Service]
Restart=always

9. supervisor

适合非 systemd 环境(容器常用)

  • Web 界面
  • 自动重启
  • 日志管理

10. 脚本监控(简单粗暴)

#!/bin/bash
if ! pgrep -f "myapp" > /dev/null; then
    /usr/bin/myapp &
fi

配合 crontab 每分钟执行。


四、专业监控方案(生产环境)

11. 监控工具栈

  • Prometheus + Node Exporter + Process Exporter
  • Zabbix
  • Grafana
  • atop / netdata

适合:

  • 多台服务器
  • 历史趋势
  • 告警通知(钉钉 / 微信 / 邮件)

五、常见排查思路

  • CPU 高 → top + pidstat
  • 内存涨 → ps + smem
  • 进程卡死 → strace
  • 频繁重启 → journalctl
  • 僵尸进程 → ps aux | grep Z

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

  • 单台服务器还是集群
  • Java / Python / C++ 进程
  • 想做实时监控还是故障告警

我可以直接给你一套可落地的监控方案或脚本。

0