Linux Command:top

Posted on Wed, 25 Dec 2024 13:58:42 +0800 by LiangMingJian


概述

top 命令常用于监控 linux 的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。

top [-d number]  # -d:top命令显示的页面更新一次的间隔,单位秒。
top [-bnp]  # -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程观察。

在 top 命令运行时,用户还可以输入以下按键执行相应的功能(注意区分大小写):

  • ?:显示在top当中可以输入的命令
  • P:以CPU的使用资源排序显示
  • M:以内存的使用资源排序显示
  • N:以 pid 排序显示
  • T:由进程使用的时间累计排序显示
  • k:给某一个 pid 一个信号,杀死进程
  • r:给某个pid重新定制一个 nice 值(即优先级)
  • q:退出top(或 Ctrl+C)

top 各输出的含义

第1行

top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30

内容含义
05:43:27系统当前时间
up 4:52系统运行时间,格式为时:分
2 users当前登录用户数
load average: 0.58, 0.41, 0.30系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转。

第2行

Tasks: 746 total, 1 running, 745 sleeping, 0 stopped, 0 zombie

内容含义
Tasks任务队列信息
total
running运行中
sleeping睡眠
stopped停止
zombie僵尸进程

第3行

%Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

内容含义
%Cpu(s)CPU信息,(s)表示不止一个,多个CPU
us用户空间占用CPU百分比
sy内核空间占用CPU百分比
ni用户进程空间内改变过优先级的进程占用CPU百分比
id空闲CPU百分比
wa等待输入输出的CPU时间百分比
hi硬中断(Hardware IRQ)占用CPU的百分比
si软中断(Software Interrupts)占用CPU的百分比
st系统花费百分之多少时间等待真正的cpu资源。该参量常用于虚拟化系统上,在正常情况下虚拟机的st最好为0,这表明你的虚拟机得到了所有必要的cpu资源,在使用时不用等待。如果这个值为50,则表明你的虚拟机在运行时有一半时间在等待CPU,存在其他虚拟机与你竞争资源。

第4行

KiB Mem : 7990288 total, 3173076 free, 2748968 used, 2068244 buff/cache

内容含义
KiB Mem物理内存信息
total物理内存总量
free空闲内存总量
used使用的物理内存总量
buff/cache用作内核缓存的内存量

第5行

KiB Swap: 8257532 total, 8257532 free, 0 used. 4615016 avail Mem

内容含义
KiB Swap硬盘交换内存、虚拟内存
total总量
free空闲
used使用
avail Mem可用于进程下一次分配的内存数量

PS:计算可用内存数公式: 第四行的 free + 第四行的 buffers + 第五行的 avail Mem

top 的进程信息

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

内容含义
PID进程id
USER进程所有者
PR优先级
NInice 值,负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态,D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
%CPU进程使用的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程运行时间
COMMAND命令名/命令行

示例

监控每个逻辑 CPU 的状况

在 top 基本视图中按 1

触发粗体显示

按 b

显示完整命令

按 c

切换显示 CPU

按 t

按 CPU 使用率从大到小排序

按 P

切换显示 Memory

按 m

按 Memory 占用率从大到小排序

按 M

按累计运行时间 Time 从大到小排序

按 T

高亮 CPU 列

按 x 

彩色高亮显示

按 z
按 shift+z 可以调配色方案

向右或左改变排序列

shift + > 或 shift + <

忽略闲置和僵死进程

按 i 

杀掉进程

按 k, 输入 PID

改变内存的显示单位,默认为 KB

按 e (针对列表)
按 E (针对头部统计信息)

高亮

按 x,将排序字段高亮显示(纵列)
按 y,将运行进程高亮显示(横行)

刷新时间

-d: 设置延迟间隔

指定进程

-p: 监控特定的PID