系统指标

一、课程介绍

本课程聚焦于 Linux 系统性能监控与分析,主要围绕 CPU、内存、网络和磁盘等硬件资源的监控指令及相关概念展开。通过学习,初学者能够掌握使用top、free、sar等指令查看系统资源使用状况,理解系统性能指标的含义,为系统优化和故障排查提供帮助。

二、CPU 性能监控

(一)top 指令基础

指令概述:top指令是 Linux 系统中常用的性能分析工具,可实时展示系统中各个进程的资源占用情况,类似 Windows 的任务管理器,在终端直接输入top即可运行。输出内容如下类似:

top - 09:36:31 up 1 day, 21 min,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  98 total,   1 running,  97 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
MiB Mem :   1967.5 total,    822.8 free,    315.4 used,    991.6 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1652.0 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                
      1 root      20   0   22888  14728  10248 S   0.0   0.7   0:07.05 systemd                
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd 

第一行显示当前时间、服务器运行时长、登录用户数以及 CPU 1/5/15 分钟的平均负载

第二行展示总进程数、正在运行的进程数、睡眠进程数、停止进程数和僵尸进程数

第三行展示CPU使用情况

0.0 us:用户空间占用 CPU 的百分比为 0.0%,即用户进程使用 CPU 的时间占总 CPU 时间的比例。
0.0 sy:系统内核空间占用 CPU 的百分比为 0.0% ,代表系统内核执行任务所占用的 CPU 时间比例。
0.0 ni:改变过优先级的用户进程占用 CPU 的百分比为 0.0% 。
100.0 id:CPU 空闲时间百分比为 100.0%,说明目前 CPU 没有被任何进程占用,处于空闲状态。
0.0 wa:等待输入输出(I/O)的 CPU 时间百分比为 0.0% ,如果该值较高,说明系统可能存在 I/O 瓶颈。
0.0 hi:硬中断(Hardware IRQ)占用 CPU 的百分比为 0.0% ,硬中断是由硬件设备产生的中断请求。
0.0 si:软中断(Software Interrupts)占用 CPU 的百分比为 0.0% ,软中断是由软件触发的中断,用于处理一些特定的系统任务。
0.0 st:被虚拟机偷走的 CPU 时间百分比为 0.0% ,在虚拟机环境中,如果宿主机资源紧张,可能会出现虚拟机占用过多 CPU 资源的情况。

第四行展示内存的使用情况

1967.5 total:系统的总内存大小为 1967.5MiB。
822.8 free:空闲内存为 822.8MiB,这部分内存未被任何进程使用。
315.4 used:已使用的内存为 315.4MiB,即当前被进程占用的内存量。
991.6 buff/cache:用于缓存和缓冲区的内存为 991.6MiB ,缓存主要用于加速文件系统的访问,缓冲区用于存储内核和磁盘 I/O 的数据。
1652.0 avail Mem:可用内存为 1652.0MiB,这是系统认为可以立即分配给进程使用的内存量,它不仅仅包括空闲内存,还包含了部分可回收的缓存和缓冲区内存。

第五行展示SWAP分区的使用情况

0.0 total:Swap分区总大小
0.0 free:空闲Swap分区容量
0.0 used:已使用Swap分区容量

第六行开始显示进程信息,进程 ID(PID)、所有者用户名(USER)、任务优先级(PR)、NICE 值(NI)、虚拟内存总量(VIRT)、物理内存总量(RES)、共享内存大小(SHR)、进程状态(S)、CPU 利用率(% CPU)、内存利用率(% MEM)、总 CPU 占用时间(TIME+)以及命令行(COMMAND)

其中进程状态分类: S-睡眠;R-运行;D-不可中断的睡眠;T-停止;Z-僵尸进程

进程信息:包括。例如,8347 root 20 0 304948 46544 21040 S 12.3 2.3 0:00.37 node,表示进程 ID 为 8347,所有者是 root,优先级 20,NICE 值 0,使用虚拟内存 304948KB,占用物理内存 46544KB 等信息。

常用参数

top -H -p [PID]:用于查看特定 PID 进程的详细信息。

top -n [NUM]:设定输出top信息的次数,默认会持续输出。

top -d [Second]:指定输出的时间间隔,单位为秒。

交互参数

P:按 CPU 利用率从高到低排序。
M:按 Memory 利用率从高到低排序。
T:按累计时间排序。
f/F:添加或删除进程相关信息的显示。
m:切换内存显示方式。
t:切换进程和 CPU 状态的显示方式。
b:打开或关闭运行时进程的高亮显示。
l:查看所有逻辑 CPU 的信息。
q:退出top程序。

三、内存使用情况查看

(一)free 指令详解

指令基础:free指令用于显示系统内存的使用情况,数据来源于/proc/meminfo文件,直接在终端输入free即可获取系统内存信息。

root@hk1-133-20-101:~# free
               total        used        free      shared  buff/cache   available
Mem:         2014700      323056      842292        1008     1015640     1691644
Swap:              0           0

内存指标:默认单位为 KByte,包括总内存量(total)、已使用内存量(used)、空闲内存量(free)、共享内存量(shared)、缓存内存量(buff/cache)和可用内存量(available),它们之间的关系为[total] = [used] + [free] + [buff/cache]。

注意:[avaliable]值一般情况下会大于[free],小于[free]+[buffer/cache],因为在计算[available]时包含了可回收的缓存,但并不是所有的[buffer/cache]都可以回收。

Swap 分区指标:显示总 Swap 分区大小、已使用 Swap 分区大小和空闲 Swap 分区大小,关系为[total] = [used] + [free]。

常用参数

free -h/--human:以人类可读的方式显示内存信息,如将字节数转换为 GB、MB 等单位。

free -c [count]:指定显示free信息的次数。

free -k/-m/-g:分别以 KB、MB、GB 为单位显示内存信息。

(二)Swap 分区与 OOM

Swap 分区:Swap 分区本质上是磁盘上的空间,类似于 Windows 的虚拟内存,用于解决内存容量不足的问题。当内存不足时,系统会将部分数据虚拟成内存使用。不过,Swap 被使用通常意味着程序性能下降。可使用swapoff -a指令关闭 Swap 分区,此时其中的数据会回写

OOM,全称Out Of Memory:在程序运行时,若申请内存空间却无法获得足够内存,就会出现 OOM 错误。

发生 OOM 后,内核会采取 kill 进程的方式来释放内存,以维持系统的稳定运行。一般会优先 kill 掉内存占用量大的进程,但具体的策略与系统版本、配置等因素有关。如果 kill 的是用户态进程,通常会导致业务错误,但系统还能继续运行;然而,如果 kill 的是内核进程,那么系统可能会出现宕机的严重情况 。在某些系统中,可能会根据进程的优先级、运行时间等因素综合判断要 kill 的进程,以尽量减少对系统运行的影响。

OOM出现的几种情况:

有 Swap 分区且使用部分 Swap:当系统有 Swap 分区时,如果内存不足,系统会使用一部分 Swap 空间。此时程序性能会下降,但系统仍能继续运行 。比如在一些内存需求突然增加的场景中,系统会先尝试使用 Swap 分区来满足内存需求,不过由于磁盘读写速度远低于内存,程序的运行速度会明显变慢。

有 Swap 分区且使用全部 Swap 后:若内存持续不足,使用完整个 Swap 空间后,系统将发生 OOM 错误。这表明系统的内存资源已极度匮乏,无法满足程序的运行需求。

无 Swap 分区:当系统没有配置 Swap 分区时,一旦内存不足,会直接发生 OOM 错误 。这种情况下,系统没有额外的虚拟内存空间来缓冲,程序更容易出现异常。

四、IO性能

(一)什么是 IO

在 Linux 系统里,IO 代表输入 / 输出,涵盖内存 IO、网络 IO 和磁盘 IO 这三种类型。通常情况下,大家说的 IO 主要指网络 IO 和磁盘 IO,特别是磁盘 IO。比如我们日常使用网络下载文件,这涉及网络 IO;从硬盘读取数据,就涉及磁盘 IO 。

(二)吞吐和时延的概念

吞吐:指的是单位时间内系统处理的信息量,常用字节 / 秒(B/s)、千字节 / 秒(KB/s)等作为单位。举例来说,磁盘的吞吐量就是在单位时间内磁盘读写的数据量,如果在 1 秒内磁盘读取了 100KB 的数据,那它的吞吐量就是 100KB/s。

时延:是指从发出请求到收到响应的时间间隔,其中包含处理时延、排队时延、传输时延等。就像网络请求,从客户端发送请求开始,到服务器返回响应所经历的时间就是网络请求的时延。

(三)网络IO性能监控

1.ifconfig是net-tools工具包里的一个工具,它能帮助我们查看网络相关信息。

安装net-tools工具包

sudo apt-get install net-tools

查看所有网卡信息,如MAC地址、IP地址、收发包数量等。

ifconfig -a
#第一个以太网接口:接口已启用(UP)、支持广播(BROADCAST)、正在运行(RUNNING)且支持多播(MULTICAST);mtu 1500表示最大传输单元为 1500 字节 。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 
        #inet 10.133.20.101是分配给该接口的 IPv4 地址,netmask 255.255.255.0是子网掩码,broadcast 10.133.20.255是广播地址;
        #inet6 fe80::d8:efff:fecc:3531是该接口的 IPv6 地址,prefixlen 64表示前缀长度,scopeid 0x20<link>表示作用域为链路本地 。
        inet 10.133.20.101  netmask 255.255.255.0  broadcast 10.133.20.255
        inet6 fe80::d8:efff:fecc:3531  prefixlen 64  scopeid 0x20<link>
 
        #ether 02:d8:ef:cc:35:31是以太网硬件地址(MAC 地址),txqueuelen 1000表示传输队列长度为 1000 。
        ether 02:d8:ef:cc:35:31  txqueuelen 1000  (Ethernet)
 
        #RX packets 768618表示接收的数据包数量为 768,618 个,bytes 1622467688 (1.6 GB)表示接收的字节数为 1.6GB ;
        #RX errors 0表示接收过程中无错误,dropped 0表示没有数据包被丢弃,overruns 0表示无超限错误,frame 0表示无帧错误 。
        RX packets 768618  bytes 1622467688 (1.6 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
 
        #TX packets 560755表示发送的数据包数量为 560,755 个,bytes 37491415 (37.4 MB)表示发送的字节数为 37.4MB;
        #TX errors 0表示发送过程中无错误,dropped 0表示没有数据包被丢弃,overruns 0表示无超限错误,carrier 0表示无载波错误,collisions 0表示无冲突 。
        TX packets 560755  bytes 37491415 (37.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
#本地回环地址接口:flags=73<UP,LOOPBACK,RUNNING>表明该接口已启用、是回环接口且正在运行;mtu 65536表示最大传输单元为 65,536 字节 。
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
 
        #inet 127.0.0.1是 IPv4 回环地址,netmask 255.0.0.0是子网掩码;
        #inet6 ::1是 IPv6 回环地址,prefixlen 128表示前缀长度,scopeid 0x10<host>表示作用域为主机本地 
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
 
        #loop表示这是一个回环接口,txqueuelen 1000表示传输队列长度为 1000 。
        loop  txqueuelen 1000  (Local Loopback)
 
        #RX packets 22009和TX packets 22009都表示数据包数量为 22,009 个,bytes 3519427 (3.5 MB)表示接收和发送的字节数均为 3.5MB;
        #接收和发送的错误、丢弃、超限、载波及冲突统计均为 0,说明回环接口的通信正常 。
        RX packets 22009  bytes 3519427 (3.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 22009  bytes 3519427 (3.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.sar是一个强大的系统监控工具,可用于监控 CPU、内存、磁盘、网络等硬件资源的指标。

安装sar

sudo apt install sysstat

监控所有网口的流速,以两秒的间隔

sar -n DEV 2

输出信息中的IFACE表示网口,rxpck/s是收包数量,txpck/s是发包数量,rxkB/s是收包字节数,txkB/s是发包字节数等。当进行数据传输,如下载代码时,网络流量会明显增加,我们可以通过这些指标来实时观察网络的使用情况 。

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      1.36      1.33      0.12      0.49      0.00      0.00      0.00      0.00
Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

sar还有很多其他参数,比如-u用于查看 CPU 相关指标,-r用于查看内存相关指标 。

例如,sar -u -s [start time] -e [end time](时间格式为hh:mm:ss)可以查看指定时间段内 CPU 的使用情况,包括用户空间(% user)、系统内核空间(% system)、空闲(% idle)等占比。

#假设你要统计当天上午 4 点到 10 点这一时间段内 CPU 的使用情况,可以使用以下命令
#时间是UTC时间
sar -u -s 04:00:00 -e 10:00:00
 
Linux 6.11.0-19-generic (hk1-133-20-101) 	03/17/25 	_x86_64_	(1 CPU)
 
04:00:02        CPU     %user     %nice   %system   %iowait    %steal     %idle
04:10:02        all      0.04      0.00      0.03      0.00      0.00     99.94
04:20:02        all      0.16      0.00      0.05      0.00      0.00     99.78
04:30:02        all      0.05      0.00      0.04      0.00      0.00     99.91
Average:        all      0.08      0.00      0.04      0.00      0.00     99.88
 
#第一部分:系统基本信息
    Linux 6.11.0-19-generic:表明系统使用的 Linux 内核版本为 6.11.0,“19-generic” 是该内核的具体构建版本,通常用于通用硬件平台。
    (hk1-133-20-101):这可能是主机名,用于标识这台特定的计算机。
    03/17/25:代表统计数据的日期是 2025  3  17 日。
    x86_64:说明系统采用的是 64 位的 x86 架构处理器。
    (1 CPU):意味着系统中只有一个 CPU 核心。
 
#第二部分:CPU使用情况统计
#
#    时间列:
#        04:00:02、04:10:02、04:20:02、04:30:02 为统计数据的采样时间点。
#        Average 表示这些采样时间段内的平均 CPU 使用情况。
#
#    CPU 列:
#        all 表示统计的是所有 CPU 核心的综合使用情况。由于系统只有一个 CPU 核心,这里实际上就是该核心的使用情况。
#
#    百分比列:
#        %user:表示 CPU 在用户态下的使用时间占比。例如在04:10:02时,用户态使用时间占比为 0.04%,说明用户程序对 CPU 的占用非常少。
#        %nice:表示 CPU 在低优先级(经过nice值调整)用户态进程的使用时间占比。这里所有采样点该值都为 0.00%,表明没有低优先级的用户进程在运行。
#        %system:表示 CPU 在内核态下的使用时间占比。例如在04:20:02时,内核态使用时间占比为 0.05%,说明系统内核的活动也很少。
#        %iowait:表示 CPU 等待 I/O 操作完成的时间占比。所有采样点该值均为 0.00%,意味着系统基本没有因 I/O 操作而导致 CPU 空闲等待的情况。
#        %steal:该指标用于虚拟化环境,代表虚拟机的 CPU 时间被宿主机 “偷走”(即宿主机将原本分配给虚拟机的 CPU 时间用于其他任务)的占比。这里为 0.00%,说明没有发生这种情况。
#        %idle:表示 CPU 的空闲时间占比。从数据来看,空闲时间占比非常高,例如平均空闲时间占比达到了 99.88%,这表明系统的 CPU 资源大部分处于闲置状态,负载很低。
#
# 根据上面信息可以得出结论,该系统在统计时间段内 CPU 负载极低,几乎没有被充分利用,可能是系统处于空闲状态或者运行的任务对 CPU 资源需求极小。

(四)磁盘IO性能监控

每秒采集一次磁盘 I/O 数据,共采集 5 次。

sar -d 1 5
Average:          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
Average:        loop0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          sda      0.40      0.00      2.40      0.00      6.00      0.00      0.00      0.00
Average:          sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

#DEV:磁盘设备名称,如sda。
#tps:每秒的传输次数,包括读和写操作。数值越高,说明磁盘的繁忙程度越高。
#rd_sec/s:每秒从磁盘读取的扇区数(一个扇区通常为 512 字节)。
#wr_sec/s:每秒写入磁盘的扇区数。
#avgrq-sz:平均每次 I/O 操作传输的扇区数,反映了 I/O 请求的大小。
#avgqu-sz:平均 I/O 队列长度,即等待处理的 I/O 请求数量。数值过大可能表示磁盘处理能力不足。
#await:平均每次 I/O 操作的等待时间,包括在队列中等待的时间和实际处理的时间。该值越大,说明 I/O 操作响应越慢。
#svctm:平均每次 I/O 操作的服务时间,即实际处理 I/O 请求的时间。
#%util:磁盘的利用率,即磁盘忙于处理 I/O 请求的时间百分比。接近 100% 表示磁盘已经达到饱和状态。

查看指定时间段内的磁盘 I/O 统计信息

#显示从 4:00:00 到 5:00:00 之间的磁盘 I/O 统计信息
sar -d -s 04:00:00 -e 05:00:00
Linux 6.11.0-19-generic (hk1-133-20-101) 	03/17/25 	_x86_64_	(1 CPU)

04:00:02          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
04:10:02        loop0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:10:02          sda      0.33      0.00      1.64      0.00      4.99      0.00      0.23      0.00
04:10:02          sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:20:02        loop0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:20:02          sda      0.34      0.03      1.78      0.07      5.50      0.00      0.46      0.00
04:20:02          sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:30:02        loop0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:30:02          sda      0.26      0.00      1.31      0.00      4.99      0.00      0.45      0.00
04:30:02          sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:40:02        loop0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:40:02          sda      0.23      0.00      1.12      0.00      4.94      0.00      0.35      0.00
04:40:02          sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        loop0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          sda      0.29      0.01      1.46      0.02      5.13      0.00      0.37      0.00
Average:          sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

显示每个物理磁盘的统计信息

#此命令每秒采集一次数据,共采集 5 次,并显示每个物理磁盘的详细信息
sar -d -p 1 5
Average:          tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util DEV
Average:         0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 loop0
Average:         0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 sda
Average:         0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 sr0

#tps:如果tps持续很高,说明磁盘的 I/O 负载较大。
#avgqu-sz:当avgqu-sz的值持续大于 1 时,表明磁盘 I/O 队列中有请求在等待处理,可能存在磁盘瓶颈。
#await 和 svctm:如果await远大于svctm,说明 I/O 请求在队列中等待的时间较长,可能是磁盘处理能力不足或者 I/O 请求过于频繁。
#%util:%util接近 100% 时,磁盘处于高负载状态,可能需要考虑升级磁盘或者优化 I/O 操作。

五、ps命令概述

在 Linux 系统中,ps(Process Status)命令是一个非常实用的工具,它用于报告当前系统的进程状态。通过ps命令,用户可以获取有关进程的各种信息,如进程 ID(PID)、用户、CPU 使用率、内存使用率、启动时间等。这有助于用户监控系统的运行状况,排查问题,以及管理进程。

常用选项及示例

  1. 简单输出信息

ps:不带任何选项时,ps命令会显示当前终端会话中运行的进程的简略信息,包括进程 ID(PID)、终端(TTY)、时间(TIME)和命令(CMD)。

ps

示例输出:

  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps

解释:这里显示了两个进程,一个是bash进程(PID 为 1234),另一个是当前执行的ps进程(PID 为 5678),它们都在pts/0终端上运行。

  1. 显示所有进程

ps -A 或 ps -e:这两个选项的作用相同,都会显示系统中所有的进程信息。

ps -A

示例输出会包含系统中所有正在运行的进程,包括系统进程、守护进程等,信息会比较多。

  1. 显示详细信息

ps -l:使用-l选项可以显示进程的详细信息,包括进程的状态(S)、UID、PPID(父进程 ID)、CPU 使用率(% CPU)、内存使用率(% MEM)等。

ps -l

示例输出:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S  1000  1234  1111  0  80   0 -  4567 wait   pts/0    00:00:00 bash
0 R  1000  5678  1234  0  80   0 -  3456 -      pts/0    00:00:00 ps
 
#解释:
#    F:进程标志,用于显示进程的权限和状态信息。
#    S:进程状态,常见的状态有R(运行中)、S(睡眠中)、D(不可中断的睡眠)、Z(僵尸进程)等。
#    UID:进程所有者的用户 ID。
#    PID:进程 ID。
#    PPID:父进程 ID。
#    C:CPU 使用率。
#    PRI:进程的优先级。
#    NI:进程的 nice 值,用于调整进程的优先级。
#    ADDR:进程的内存地址。
#    SZ:进程占用的内存大小(以页为单位)。
#    WCHAN:进程正在等待的内核函数名。
#    TTY:进程所在的终端。
#    TIME:进程使用 CPU 的时间。
#    CMD:启动进程的命令。
  1. 自定义输出格式

ps -o:使用-o选项可以自定义输出的列,多个列之间用逗号分隔。

ps -o pid,user,%cpu,%mem,cmd

示例输出:

  PID USER     %CPU %MEM CMD
 1234 user1      0.0  0.1 bash
 5678 user1      0.0  0.0 ps -o pid,user,%cpu,%mem,cmd

这里只显示了进程 ID、用户、CPU 使用率、内存使用率和命令。

  1. 显示进程树
ps -axjf:这个选项组合可以以树形结构显示进程之间的父子关系。
ps -axjf

示例输出:

 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    0     1     1     1 ?           -1 Ss       0   0:01 /sbin/init splash
    1   200   200   200 ?           -1 S        0   0:00  \_ /lib/systemd/systemd-journald
    1   300   300   300 ?           -1 S        0   0:00  \_ /lib/systemd/systemd-udevd

可以清晰地看到进程之间的层次关系,_表示子进程。

  1. 实时监控进程
ps -aux:-a表示显示所有用户的进程,-u表示以用户为中心输出详细信息,-x表示显示没有控制终端的进程。这个组合常用于实时监控系统中所有进程的资源使用情况。
ps -aux

示例输出:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  16892  2420 ?        Ss   Mar20   0:01 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    Mar20   0:00 [kthreadd]

这里显示了每个进程的用户、PID、CPU 使用率、内存使用率等信息,方便用户实时了解系统中进程的资源占用情况。