top

Sep 15, 2021


参考:这里这里这里

top 命令非常强大,但它监控的最小单位是进程,如果想监控更小单位,就需要用到 ps 或者 netstate 命令

参数

启动参数

参数 含义 示例
-b 以批次的方式执行 top -b
-d 刷新间隔,单位秒,默认5秒 top -d 1
-n 刷新n次后自动退出 top -n 3
-o 按列排序 top -o %CPU
-p 查看指定的 PID 信息 top -p 17531

TOP 内参数

参数 含义
? 打开帮助
1 显示每个逻辑CPU的状况
< 向前翻页
> 向后翻页
H 显示线程
M 以内存排序
N 以PID排序
P 以CPU排序
T 以进程使用的时间累计排序
W 将当前设置写入~/.toprc文件,下次启动调用该设置
c 显示完整的命令
d 更改刷新频率
f 打开配置
h 打开帮助
i 忽略闲置和僵死进程
k 先 k,后输入 PID 可以杀死进程
l 显示/隐藏第一行
m 显示/隐藏/显示状态切换第四、五行
q 退出
r 给某个PID重新定制一个nice值(即优先级)
s 更改刷新频率
t 显示/隐藏/显示状态切换第二、三行
u 指定用户进程
x 显示排序列

f 打开配置后:

  1. 右箭头:选中该行,再按上/下可以调整列的前后顺序
  2. d/空格:显示/隐藏该列,标 * 的为显示的列
  3. s:以该列排序

详解

前5行

top - 14:40:23 up 33 days,  4:42,  1 user,  load average: 0.69, 1.16, 1.30
Tasks: 153 total,   1 running, 152 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.1 us,  0.6 sy,  0.0 ni, 97.7 id,  0.0 wa,  0.0 hi,  0.6 si,  0.0 st
KiB Mem : 16267104 total,   839276 free,  9161456 used,  6266372 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used.  5861184 avail Mem
  1. 第一行

     top - 14:40:23 up 33 days,  4:42,  1 user,  load average: 0.69, 1.16, 1.30
    
    内容 含义
    14:40:23 当前时间
    up 33 days, 4:42 系统运行时间,单位:分
    1 user 当前登录用户数
    load average: 0.69, 1.16, 1.30 系统负载,即任务队列的平均长度。
    三个数值分别为:1、5、15分钟前到现在的平均值
    该数除以逻辑CPU的数量>5即表明系统在超负荷运行
  2. 第二行和第三行

     Tasks: 153 total,   1 running, 152 sleeping,   0 stopped,   0 zombie
     %Cpu(s):  1.1 us,  0.6 sy,  0.0 ni, 97.7 id,  0.0 wa,  0.0 hi,  0.6 si,  0.0 st
    
    内容 含义
    153 total 进程总数
    1 running 正在运行的进程数
    152 sleeping 休眠的进程数
    0 stopped 停止的进程数
    0 zombie 僵尸进程数
    1.1 us 用户空间占用CPU百分比
    0.6 sy 内核空间占用CPU百分比
    0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
    97.7 id 空闲CPU百分比
    0.0 wa 等待输入输出的CPU时间百分比
    0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
    0.6 si 软中断(Software Interrupts)占用CPU的百分比
    0.0 st  
  3. 第四行和第五行

     KiB Mem : 16267104 total,   839276 free,  9161456 used,  6266372 buff/cache
     KiB Swap:  4194300 total,  4194300 free,        0 used.  5861184 avail Mem
    
    内容 含义
    16267104 total 物理内存总量
      839276 free 空闲的物理内存
      9161456 used 使用的物理内存
      6266372 buff/cache 用作内核缓存的物理内存
    4194300 total 交换区总量
      4194300 free 空闲交换区
      0 used 使用的交换区
      5861184 avail Mem 代表可用于进程下一次分配的物理内存数量

进程信息

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0  160480  26944   2288 S   1.0  0.2 297:06.06 systemd
列名 含义
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 任务标志