ps 入门:看进程状态与十条常用命令

举报
yd_283574177 发表于 2026/11/11 12:33:01 2026/11/11
【摘要】 Linux 服务器上出了问题,第一反应往往是“先看看进程在不在、跑得怎么样”。ps 就是干这件事的标配工具:它拍下某一时刻的进程快照,不占资源、不改系统,适合入门排查。本文先讲清输出里每一列的含义和进程状态码,再给出十条最常用的命令,照着敲一遍就能上手。 一、进程是什么简单说,进程就是正在运行的程序的一次执行。打开的编辑器、后台跑的数据库、定时执行的脚本,在系统里都对应一个或多个进程。每个进...

Linux 服务器上出了问题,第一反应往往是“先看看进程在不在、跑得怎么样”。ps 就是干这件事的标配工具:它拍下某一时刻的进程快照,不占资源、不改系统,适合入门排查。本文先讲清输出里每一列的含义和进程状态码,再给出十条最常用的命令,照着敲一遍就能上手。

一、进程是什么

简单说,进程就是正在运行的程序的一次执行。打开的编辑器、后台跑的数据库、定时执行的脚本,在系统里都对应一个或多个进程。每个进程有一个唯一的 PID(进程号),系统靠它区分和管理进程。

二、读懂 ps aux 的输出

最常用的一条命令是:

ps aux

输出的列分别是:USER(属主)、PID(进程号)、%CPU(CPU 占用率)、%MEM(内存占用率)、VSZ(虚拟内存)、RSS(实际占用的物理内存)、TTY(终端)、STAT(状态)、START(启动时间)、TIME(累计 CPU 时间)、COMMAND(启动命令)。

初学重点看四列:PID 用来定位进程,%CPU 和 %MEM 用来判断谁在吃资源,STAT 用来看进程健不健康,COMMAND 用来确认它到底是什么程序。

三、进程状态码:R、S、D、Z、T

STAT 一列由字母组成,最常见的五个是:

  • R(Running):正在运行或等待 CPU,排队也算 R。
  • S(Sleeping):在休眠,等某个事件,比如等用户输入、等网络数据,大多数进程平时都是 S。
  • D(Disk sleep):在等磁盘 I/O,不能被信号打断,短时间出现正常,长期大量出现要查磁盘。
  • Z(Zombie):僵尸进程,已经结束但父进程还没回收它的退出信息,本身不占内存,只占一个进程表项。
  • T(Stopped):被暂停了,一般是收到 SIGSTOP,或在调试器里被停住。

所以只看状态就能做初步判断:全是 S 很正常;出现很多 D,先看磁盘;出现 Z,先找它的父进程。

四、十条常用命令

  1. 看全部进程:ps aux
  2. 只看自己的进程:ps -u $USER
  3. 按树状看父子关系:ps auxf
  4. 查某个程序:ps aux | grep nginx
  5. 只看某一个 PID:ps -p 1234 -o pid,ppid,%cpu,%mem,stat,cmd
  6. 按内存占用排序取前十:ps aux --sort=-%mem | head -n 11
  7. 按 CPU 占用排序取前十:ps aux --sort=-%cpu | head -n 11
  8. 看指定用户的进程:ps -U www-data -o pid,%cpu,%mem,cmd
  9. 自定义列输出:ps -eo pid,ppid,stat,%mem,cmd --sort=-%mem | head -n 15
  10. 每两秒刷新一次:watch -n 2 'ps aux --sort=-%cpu | head -n 15'

需要注意,第 4 条用 grep 自查时,输出里常常出现 grep 自身那一行,加 grep -v grep 过滤掉,或者改用 pgrep -a nginx。

五、和 top、kill 配合排查

ps 是快照,只能看一瞬间;想看动态变化用 top。排查的一般顺序是:ps aux --sort=-%cpu 找到最耗资源的进程,记下 PID;ls -l /proc/<PID>/exe 确认它对应哪个程序文件;问题确认后,用 kill <PID> 结束,顽固的才用 kill -9,并且先确认它不是系统关键进程。

六、常见误区

  • 把 VSZ 当成真实内存占用:VSZ 包含共享库和未实际分配的虚拟内存,判断内存压力要看 RSS。
  • 看到僵尸进程就紧张:少量 Z 进程无害,重点是找到不回收的父进程并修复它。
  • 不加条件乱用 kill -9:可能丢数据或留下不一致的状态,先试普通 kill。

七、小结

记住三件事就够了:ps aux 看全貌,STAT 看健康,–sort 找“罪魁祸首”。今天可以在自己的机器上依次敲一遍上面十条命令,重点观察 STAT 一列和内存排序前三名,下次服务变慢时,你就知道该先看谁了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。