linux 命令之 top

top 简介

该命令可实时显示系统中各个进程的资源占用情况

通常显示如下:

+---------------------------------------------------------------------------------+
| top - 21:17:20 up  2:14,  1 users,  load average: 0.52, 0.58, 0.59              |
| Tasks:   4 total,   1 running,   3 sleeping,   0 stopped,   0 zombie            |
| %Cpu(s):  8.9 us,  6.9 sy,  0.0 ni, 83.9 id,  0.0 wa,  0.4 hi,  0.0 si,  0.0 st |
| KiB Mem :  8269472 total,  3354232 free,  4678764 used,   236476 buff/cache     |
| KiB Swap: 13107196 total, 13090184 free,    17012 used.  3449852 avail Mem      |
|                                                                                 |
|   PID USER      PR  NI    VIRT    RES   SHR  S  %CPU %MEM    TIME+   COMMAND    |
|     1 root      20   0    8304    132   104  S   0.0  0.0   0:00.35    init     |
|   ...  ...     ...  ...   ...     ...   ...  .   ...  ...     ...       ...     |
+---------------------------------------------------------------------------------+

其输出说明如下:

  • 第一行:显示任务队列信息,与 uptime 命令的执行结果相同

    21:17:20                         当前系统时间
    up 2:14                          系统已经运行2小时14分
    1 users                          当前有 1 个用户登陆系统
    load average: 0.52, 0.58, 0.59   过去 1 分钟,5 分钟,15 分钟的平均负载情况
    
  • 第二行:进程的统计信息

    4 total                          当前共计 4 个进程
    1 running                        1 个在运行中
    3 sleeping                       3 个休眠中
    0 stopped                        stopped 状态的为 0 个
    0 zombie                         僵死状态的有 0 个
    
  • 第三行:CPU 的状态信息

    8.9 us                           用户占用 CPU 的百分比
    6.9 sy                           内核空间占用 CPU 的百分百
    0.0 ni                           改变过优先级的进程占用 CPU 的百分百
    83.9 id                          空闲 CPU 百分比
    0.0 wa                           I/O 等待占用 CPU 的百分百
    0.4 hi                           硬中断(Hardware IRQ)占用 CPU 的百分百
    0.0 si                           软中断(Software Interrupts)占用 CPU 的百分比
    0.0 st                           虚拟内存占用 CPU 的百分百
    
  • 第四行:内存统计信息

    8269472 total                    物理内存总量,单位kb
    3354232 free                     空闲内存总量,单位kb
    17012 used                       使用中的内存总量,单位kb
    236476 buff/cache                缓冲的内存总量
    
  • 第五行:swap 交换分区统计

    13107196 total                   交换区总量,单位kb
    13090184 free                    空闲交换区空间,单位kb
    17012 used                       使用的交换区的总量,单位kb
    3449852 avail Mem                全部可用的内存总量(同 free 命令中的 available),单位kb
    
  • 表格中各字段含义

    PID                              进程 id
    USER                             进程所有者
    PR                               进程优先级
    NI                               nice 值,负值表示高优先级,正值表示低优先级
    VIRT                             进程使用的虚拟内存总量,单位为kb
    RES                              进程使用的、未被换出的物理内存大小,单位为kb
    SHR                              共享内存大小,单位为kb
    S                                进程状态,各状态表示如下
                                     D: 不可中断的睡眠状态
                                     R: 运行
                                     S: 睡眠
                                     T: 跟踪/停止
                                     Z: 僵尸进程
    %CPU                             上次更新到现在的CPU时间占用百分百
    %MEM                             进程使用的物理内存百分百
    TIME+                            进程使用的CPU时间总计,单位1/100秒
    COMMAND                          进程名称(命令/命令行)
    

top 交互式命令

z                    打开或关闭颜色
b                    打开或关闭加粗高亮
y                    高亮运行的进程,需结合b或z使用
x                    高亮显示选中的列,需结合b或z使用
</>                  切换选中列
shift + r            切换选中列的排序方式,正向或反向排序
l                    切换是否显示平均负载和启动时间信息(即第一行的显示开关)
t                    切换CPU状态统计信息的显示方式(可切换为条形图或隐藏)
m                    切换显示内存统计信息的显示方式(可切换为条形图或隐藏)
u                    显示指定用户相关的进程信息
c                    切换是否显示完整的命令行和命令名称信息
i                    切换是否显示闲置进程或僵死进程
k                    停止一个进程,系统将提示用户输入需要停止进程的PID
1                    数字 1,用于多核CPU监控,切换是否显示每个逻辑CPU状况
shift + h            将第二行的 Tasks 进程统计信息改为显示 Threads 线程统计信息
f                    添加或删除监控列表中的字段,带*的为显示,通过空格键取消显示或添加显示
s/d                  改变top的刷新时间
shift + w            保存当前top的设置到 ~/.toprc 文件中
q                    退出top
shift + z            全局颜色设置
shift + b            全局字体加粗设置
r                    调整一个进程的优先级
shift + s            开启或关闭累计模式
o                    待描述
shift + i            Irix/Solaris 模式
h/?                  显示帮助信息,给出交互式命令的一些说明

top 命令行参数

$ top [option]

-c                     同交互模式中的 c
-d [number]            同交互模式中的s或d,指定top的刷新间隔时间
-H                     同交互模式中的 shift + h
-i                     同交互模式中的 i
-n [number]            指定刷新多少次后自动退出
-b                     以批处理的模式显示进行信息,输出结果可以传递给其他程序或写入文件中。
                       在该模式下,top 命令不会接受任何输入,一直运行直到 -n 选项设置的阀值,
                       或者通过 CTRL+C 等组合键结束。
-p                     显示指定进程信息
0%