0

0

如何查看Linux系统运行进程 ps aux命令输出字段解析

P粉602998670

P粉602998670

发布时间:2025-08-08 12:53:01

|

1066人浏览过

|

来源于php中文网

原创

要查看linux系统中当前运行的进程,最常用命令是ps aux,它提供系统所有进程的静态快照。1. ps aux中a表示显示所有用户进程,u表示以用户友好格式展示(含cpu和内存使用率),x表示包含无控制终端的进程(如守护进程)。2. 输出字段包括user(进程所有者)、pid(进程id)、%cpu(cpu使用百分比)、%mem(内存使用百分比)、vsz(虚拟内存大小)、rss(实际物理内存占用)、tty(控制终端)、stat(进程状态)、start(启动时间)、time(累计cpu时间)、command(启动命令)。3. 诊断性能瓶颈时,应重点关注%cpu和%mem判断资源占用,结合rss分析内存问题,通过stat识别进程状态(如d状态表示i/o等待,z表示僵尸进程),并依据command定位具体程序。4. 为高效处理大量输出,可结合grep筛选特定进程(如ps aux | grep '[n]ginx'避免自身匹配),并使用sort排序(如ps aux --sort=-%cpu | head -n 10查看cpu占用最高的10个进程),还可组合使用ps aux | grep python | sort -rnk 3 | head -n 10按cpu使用率对python进程排序。该命令因其全面性、直观性和与其他工具的良好组合能力,成为系统监控和故障排查的首选方法。

如何查看Linux系统运行进程 ps aux命令输出字段解析

在Linux系统里,要查看当前运行的进程,最常用也最直观的命令就是

ps aux
。它能为你展示系统上所有用户的所有进程,包括那些没有控制终端的后台服务,提供一个全面的、静态的系统进程快照。

解决方案

ps aux
命令是
ps
(process status)命令的一个组合变体,其中:

  • a
    :显示所有用户的进程,不只是当前用户的。
  • u
    :以用户为中心(user-oriented)的格式显示进程,这会增加一些有用的列,比如CPU和内存使用率。
  • x
    :显示没有控制终端的进程,这对于查看守护进程(daemon)和系统服务非常重要。

当你执行

ps aux
后,你会看到类似这样的输出:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 225308 11988 ?        Ss   Mar07   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Mar07   0:00 [kthreadd]
...
youruser  1234  0.5  2.3 123456 45678 pts/0    Sl+  10:30   0:15 /usr/bin/python3 myapp.py

下面是每个字段的详细解析,理解它们对于系统监控和故障排查至关重要:

  • USER: 启动该进程的用户名称。这对于判断一个进程是否以特权用户(如root)运行,或者哪个用户账户可能导致了资源消耗很有用。
  • PID: 进程ID(Process ID)。每个运行中的进程都有一个唯一的数字ID。这是你对进程进行操作(如杀死、发送信号)时最常用的标识符。
  • %CPU: 进程当前使用的CPU百分比。这个值是基于一段时间内的平均值。高百分比通常意味着该进程正在大量消耗CPU资源。
  • %MEM: 进程当前使用的物理内存百分比。与%CPU类似,高百分比可能指示内存泄漏或应用程序设计不当。
  • VSZ: 虚拟内存大小(Virtual Size)。进程使用的虚拟内存总量,包括代码、数据、共享库以及已交换到磁盘的部分。它通常比实际占用的物理内存大很多。
  • RSS: 驻留集大小(Resident Set Size)。进程实际占用的物理内存大小,不包括已交换到磁盘的部分。这是一个更真实的内存使用量指标。
  • TTY: 控制终端。如果进程是由终端启动的,这里会显示对应的终端名称(如
    pts/0
    )。如果进程没有控制终端(通常是后台服务),则显示
    ?
  • STAT: 进程状态(Process State)。这是一个非常重要的字段,用一个或多个字母表示进程的当前状态。常见的状态码包括:
    • R
      : Running (正在运行或在运行队列中等待)
    • S
      : Sleeping (可中断睡眠,等待事件发生)
    • D
      : Disk Sleep (不可中断睡眠,通常在等待I/O完成,比如磁盘读写)
    • Z
      : Zombie (僵尸进程,进程已终止但其父进程尚未回收其资源)
    • T
      : Stopped (停止,可能被信号停止)
    • S
      : Session leader (会话领导者)
    • +
      : Foreground process (前台进程)
    • <
      : High-priority (高优先级)
    • N
      : Low-priority (低优先级)
    • l
      : Multi-threaded (多线程进程)
  • START: 进程启动的时间或日期。如果进程是在24小时内启动的,显示时间;否则显示日期。
  • TIME: 进程累计使用的CPU时间。这个时间是进程自启动以来,在CPU上执行指令的总时长,而不是实际运行了多久。
  • COMMAND: 启动进程的完整命令行。这包括可执行文件的路径以及传递给它的所有参数。这是识别具体应用程序或服务最直接的方式。

为什么
ps aux
是系统管理员和开发者首选的进程查看命令?

在我看来,

ps aux
之所以如此受欢迎,核心在于它的全面性与即时性。它不像
top
那样提供动态的、实时的更新,但正是这种“快照”特性,让它在很多场景下显得更高效。当你需要快速了解系统上“现在到底有哪些进程在跑,它们都干了什么,资源占用如何”时,
ps aux
能一次性给出所有答案。

a
x
选项的组合,意味着你不会漏掉任何一个进程,无论是用户会话中的,还是系统后台的守护进程,都能一览无余。而
u
选项提供的用户友好型输出,则直接把CPU、内存占用等关键指标摆在你面前,省去了进一步计算或猜测的麻烦。对于日常的系统健康检查、初步的性能问题排查,或者仅仅是想知道某个服务是否真的启动了,
ps aux
都是我的第一选择。它提供了一个全局视角,让我能迅速定位到可能的问题源头,或者确认系统的基本运行状态。

如何利用
ps aux
输出中的关键字段快速诊断系统性能瓶颈?

诊断系统性能瓶颈,我通常会把目光聚焦在几个关键字段上。这就像医生看病,有些指标一眼就能看出问题所在。

首先是

%CPU
%MEM
。这两个是资源消耗的直接指标。如果某个进程的
%CPU
持续很高,比如长时间维持在90%以上,那它很可能是CPU的瓶颈源。我通常会结合
TIME
字段来看,如果
TIME
也很大,说明这个进程确实一直在忙着消耗CPU。类似地,
%MEM
过高则指向内存问题,结合
RSS
(实际物理内存占用),可以判断是不是有进程在“吃”内存。我见过不少应用因为内存泄漏,
RSS
值一路飙升,最终导致系统变慢甚至崩溃。

其次是

STAT
字段。这个字段揭示了进程的“精神状态”。

  • 如果看到大量进程处于
    D
    (Disk Sleep)状态,这往往意味着系统I/O存在瓶颈,进程在等待磁盘操作完成。这可能是磁盘速度慢、磁盘负载高或者网络存储出现问题。
  • Z
    (Zombie)进程虽然不消耗CPU或内存,但大量僵尸进程可能表明父进程存在bug,没有正确地回收子进程资源。虽然它们本身无害,但却是一个系统维护不良的信号。
  • 如果一个关键服务进程频繁在
    R
    S
    之间切换,并且
    %CPU
    不高,那可能说明它在等待某些外部资源,比如数据库连接、网络响应等。

最后是

COMMAND
字段。这是你判断“谁”在消耗资源的关键。有了
PID
COMMAND
,你就能精确地知道是哪个程序或服务出了问题,进而采取进一步的排查措施,比如查看日志、重启服务,或者深入代码层面去分析。

Tana
Tana

“节点式”AI智能笔记工具,支持超级标签。

下载

我个人在排查时,会先用

ps aux
大致扫一眼,看看有没有异常高的
%CPU
%MEM
,然后根据
COMMAND
判断是哪个应用,再结合
STAT
看看它的具体状态。这就像一个快速的“三板斧”,能迅速锁定问题的大致范围。

结合
grep
sort
,如何更高效地筛选和排序
ps aux
的输出?

单纯的

ps aux
输出量可能很大,尤其是服务器上进程多的时候,直接看会眼花缭乱。这时候,Linux命令行工具的组合能力就显得尤为强大,
grep
sort
是我的两大“利器”。

使用

grep
进行筛选: 当我想查找特定服务或用户相关的进程时,
grep
是不可或缺的。比如,我想看看所有
nginx
相关的进程:

ps aux | grep nginx

这里有个小技巧:为了避免

grep nginx
这个命令本身也出现在结果里,我通常会这么写:

ps aux | grep '[n]ginx'

通过在字符集里指定第一个字符,

grep
就不会匹配到它自己的命令行了,结果会更干净。这对于查找MySQL、Python脚本等都非常实用。

使用

sort
进行排序: 如果我想找出最消耗CPU或内存的进程,排序功能就非常有用了。

  • 按CPU使用率降序排列,并显示前10个:

    ps aux --sort=-%cpu | head -n 10

    这里的

    --sort=-%cpu
    表示按照
    %CPU
    字段降序(
    -
    表示降序)排序。
    head -n 10
    则只显示前10行,通常包括标题行和9个进程。

  • 按内存使用率降序排列:

    ps aux --sort=-%mem | head -n 10
  • 同时筛选和排序: 你也可以将它们结合起来。比如,我想看看所有用户下,哪些Python进程最耗CPU:

    ps aux | grep python | sort -rnk 3 | head -n 10

    这里,

    grep python
    先过滤出Python相关的进程,然后
    sort -rnk 3
    对结果进行排序:
    -r
    表示反向(降序),
    -n
    表示按数字值排序,
    -k 3
    表示按第三列(即
    %CPU
    列)进行排序。最后
    head -n 10
    截取前10行。

这种组合拳能让你在海量进程信息中迅速定位到你真正关心的那一部分,极大地提高了排查效率。掌握这些,可以说你对Linux进程管理的理解就更深入了一步。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

765

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

640

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

764

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

639

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1305

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

549

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

709

2023.08.11

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

3

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 801人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号