首页/系统/Linux 运维命令速查/ps 进程快照速查
性能与监控48 条

ps 进程快照速查

ps 的排查用法:按 CPU/内存排序、按状态过滤(D/Z)、看完整命令行与线程;etop 式一行流先看现场。

Linux 运维命令速查系统更新于 2026-10-13

ps 快照速查

ps 给出某一时刻的进程快照:按 CPU 或内存排序找大户,按状态过滤找僵尸与不可中断睡眠,带完整命令行区分同名进程。它不实时,但胜在轻量、输出稳定,适合脚本采集与现场取证。需要看动态变化再用 top 或 htop。

基本信息

适用场景快速定位资源大户与异常进程状态
命令语法ps aux ;ps -eo 自定义输出列
常用选项--sort 排序 / -eo 指定列 / -eLf 显示线程 / -p 指定进程
所属procps-ng

典型使用场景

  • 找出内存或 CPU 占用最高的进程
  • 筛查僵尸进程与不可中断睡眠的进程
  • 查看进程的启动时长与父子关系
  • 统计线程总数,判断是否存在线程泄漏
  • 脚本采集基线,用于趋势对比

常用示例

常用示例
ps aux --sort=-rss | head -n 12
ps aux --sort=-%cpu | head -n 12
ps -eo pid,ppid,stat,rss,etime,cmd --sort=-rss | head
ps -eLf | wc -l                                      # 线程总数
ps -eo stat,pid,ppid,cmd | awk '$1 ~ /Z|D/' | head   # 僵尸与不可中断睡眠

状态码读法

状态含义提示
R正在运行或可运行长期大量 R 说明 CPU 在排队
S可中断睡眠等待事件的常态
D不可中断睡眠多与磁盘或网络文件系统有关
Z僵尸已退出,等待父进程回收
T已停止被信号暂停或正在调试
附带字符< 高优先级、N 低优先级、l 多线程、s 会话组长要组合起来看
僵尸进程本身几乎不占资源,要处理的是没能回收它的父进程;父进程恢复后僵尸会自动消失。
容器里 ps 看到的进程号与宿主机不同,跨层定位要借助容器运行时工具,或进入对应命名空间查看。
要看动态变化就换 top 的批处理模式或 htop;ps 负责给出固定截面,两类工具搭配使用比单用其中一种更高效,采集基线时把两者输出都存档,事后能交叉验证。另外 ps 与 top 的排序和采样口径并不相同,跨工具对比前先确认指标定义一致。

易错点

  • 只按 CPU 排序找问题,会漏掉内存泄漏类故障,两类排序都要看
  • 僵尸进程杀不掉,要处理的目标是它的父进程
  • 不可中断睡眠的进程连强制信号也无效,只能等它等待的 IO 返回
  • 容器内的进程号与宿主机不同,直接对照会定位到错误的进程
  • 单次快照不反映趋势,做基线要按固定间隔重复取样

数据来源与参考

  • man 1 ps(procps-ng)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌