【Linux】top命令

使用

命令 解释
top -d 1 1秒跟新一次
top -p {PID} 指定特定的pid进程号进行观察

命令

在top界面还可以输入命令(需要区分大小写)

命令 解释
d 更改刷新时间间隔
P CPU使用率降序排序
M 内存使用率降序排序
T 进程使用时间降序排序
k 杀进程
m 切换到内存模式
1 查看每个CPU的详细信息

参数含义

第一行

top - 11:48:58 up 3:08, 1 user, load average: 0.40, 0.32, 0.41

内容 含义
11:48:58 当前时间
up 3:08 系统运行时间 格式为时:分
1 user 当前登入用户数
load average: 0.40, 0.32, 0.41 系统负载,即任务队列的平均长度。

load average
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行

Tasks: 453 total, 2 running, 451 sleeping, 0 stopped, 0 zombie

内容 含义
Tasks: 453 total 总进程数
2 running 正在运行的进程数(即正在使用CPU执行任务)
451 sleeping 休眠的进程数(即处于非执行状态,等待被唤醒)
0 stopped 停止的进程数(即处于停止状态)
0 zombie 僵尸进程数
  • sleep休眠:表示当前没有运行但处于等待状态的进程数量。这些进程暂时没有分配到 CPU 时间,它们处于休眠状态,等待某个事件的发生,如等待 I/O 完成、等待信号、或者等待其他资源。休眠状态的进程不会占用 CPU 时间,系统调度器会将 CPU 时间分配给其他需要执行的进程。
  • stopped暂停:表示当前被暂停(停止)的进程数量。这些进程可能是由用户发送 SIGSTOP 信号而暂停的。停止的进程不会占用 CPU 时间。
  • 僵尸进程是已经终止(terminated)但其父进程尚未等待(wait)其终止状态的进程。当一个进程结束时,它的退出状态(exit status)会保留在系统中,直到其父进程通过 wait() 系统调用来获取。如果父进程没有等待子进程的终止状态,那么子进程就会变成僵尸进程。僵尸进程占用了进程表中的资源,因此应该及时被清理,通常是通过父进程调用 wait()waitpid() 来回收。

第三行

%Cpu(s): 7.0 us, 0.2 sy, 0.3 ni, 92.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

内容 含义
7.0us 用户空间(User space)占用CPU百分比,即用户进程占用的CPU时间百分比
0.2sy 内核空间(System space)占用CPU百分比,即内核进程占用的CPU时间百分比
0.3ni 表示调整过优先级的用户态进程的 CPU 使用百分比。ni 表示 “nice” 值,即用户通过 nice 命令调整的进程优先级
92.5 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0 si 软中断(Software Interrupts)占用CPU的百分比
0.0 st 被虚拟化环境中其他虚拟机”偷走”(Steal)的 CPU 时间百分比

第四、五行

MiB Mem : 16000.5 total, 5664.6 free, 8620.5 used, 1715.4 buff/cache

MiB Swap: 0.0 total, 0.0 free, 0.0 used. 7069.0 avail Mem

内容 含义
MiB Mem
16000.5 total 物理内存总量
5664.6 free 空闲内存总量
8620.5 used 使用的物理内存总量
1715.4 buff/cache 用作内核缓存的内存量
MiB Swap
0.0 total 交换区总量
0.0 free 空闲交换区总量
0.0 used 使用的交换区总量
7069.0 avail Mem 代表可用于进程下一次分配的物理内存数量
617312 cached Mem 缓冲的交换区总量

上述最后提到的缓冲的交换区总量,这里解释一下,所谓缓冲的交换区总量,即内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

进程信息

列明 含义
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志