在 Linux 下“监控进程”可以从临时查看、长期监控、资源统计、自动化告警几个层面来做。下面按常见场景给你一个实用指南。
ps 查看进程快照ps aux
ps -ef
常用组合:
ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head
top / htop 实时查看top
htop # 更友好,需安装
htop 支持鼠标、树状结构pgrep nginx
ps -C nginx
top -p 1234
cat /proc/1234/status
cat /proc/1234/statm
vmstat(CPU / 内存 / IO)vmstat 1
iostat(磁盘 IO)iostat -x 1
free(内存)free -h
pidstat(强烈推荐)pidstat -u 1 # CPU
pidstat -r 1 # 内存
pidstat -d 1 # IO
strace 看系统调用strace -p 1234
lsof 看文件/端口lsof -p 1234
lsof -i :8080
systemd 服务监控systemctl status nginx
journalctl -u nginx -f
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Restart=always
if ! pgrep -f myapp > /dev/null; then
systemctl restart myapp
fi
配合 cron + mail 或企业微信/钉钉机器人
| 需求 | 推荐 |
|---|---|
| 快速排查 | top / htop |
| 某进程资源 | pidstat |
| 长期监控 | Netdata / Prometheus |
| 服务存活 | systemd |
| 深度分析 | strace / perf |
如果你能说下:
我可以直接给你一套可落地的监控方案或脚本。