top:实时显示系统各个进程占用的资源情况

xiaohai 2021-05-25 19:00:16 2715人围观 标签: Linux 
简介top命令用于实时显示系统中进程占用资源的情况。该命令还可以按照CPU的使用、内存使用和执行时间对系统进程进行排序显示。同时top命令还可以通过交互命令进行设定显示
说明

  top命令用于实时显示系统中进程占用资源的情况。该命令还可以按照CPU的使用、内存使用和执行时间对系统进程进行排序显示。同时top命令还可以通过交互命令进行设定显示
  可以使用该命令来踢掉某个用户登录

格式

  top [option]

常用参数
  • -c:显示进程的整个命令路径,而不是只显示命令名称
  • -d:指定每两次屏幕信息刷新之间的时间间隔
  • -H:指定整个可以显示每个线程的情况,否则就是进程的总的状态
  • -i:不显示闲置或僵尸进程信息
  • -n:top输出信息更新的次数,完成后就自动退出top命令
  • -p:显示指定的进程信息
交互命令

在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

  • h:显示帮助画面,给出一些简短的命令总结说明;
  • k:终止一个进程;
  • i:忽略闲置和僵死进程,这是一个开关式命令;
  • q:退出程序;
  • r:重新安排一个进程的优先级别;
  • S:切换到累计模式;
  • s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
  • f或者F:从当前显示中添加或者删除项目;
  • o或者O:改变显示项目的顺序;
  • l:切换显示平均负载和启动时间信息;
  • m:切换显示内存信息;
  • t:切换显示进程和CPU状态信息;
  • c:切换显示命令名称和完整命令行;
  • M:根据驻留内存大小进行排序;
  • P:根据CPU使用百分比大小进行排序;
  • T:根据时间/累计时间进行排序;
  • w:将当前设置写入~/.toprc文件中。
示例

1、显示进程信息

[root@localhost ~]# top
top - 01:05:30 up 1 day, 11:10,  2 users,  load average: 0.00, 0.02, 0.05
Tasks: 350 total,   2 running, 348 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   1003420 total,   929148 used,    74272 free,        0 buffers
KiB Swap:  2097148 total,   320612 used,  1776536 free.    82544 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                          
     1 root      20   0   43964   2112   1252 S  0.0  0.2   0:03.06 systemd                                                                          
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.11 kthreadd                                                                         
     3 root      20   0       0      0      0 S  0.0  0.0   0:10.75 ksoftirqd/0                                                                      
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H   
...

第一行:

  • top - 01:05:30[当前系统时间],
  • up 1 day, 11:10[系统已经运行了1天11小时10分],
  • 2 users[当前有2个用户登录],
  • load average: 0.00, 0.02, 0.05[系统负载,即任务队列的平均长度,分别是1分钟、5分钟、15分钟的平均负载情况]

第二行:Tasks为任务(进程)

  • 共用350个进程,2个在运行,348个在休眠,0个在stoped,僵尸状态为0个

第三行:CPU状态信息

  • 0.0 us:用户空间占用CPU的百分比
  • 0.3 sy:内核空间占用CPU的百分比
  • 0.0 ni:改变过优先级的进程占用CPU的百分比
  • 99.7 id:空闲CPU百分比
  • 0.0 wa:I/O等待占用CPU的百分比
  • 0.0 hi:硬中断占用CPU的百分比
  • 0.0 si:软中断占用CPU的百分比
  • 0.0 st:虚拟机占用CPU的百分比

第四行:内存状态(单位KB)

  • 1003420 total:物理内存总量
  • 929148 used:使用中的内存总量
  • 74272 free:空闲内存总量
  • 0 buffers:缓冲的内存量

第五行:swap交换分区信息(单位KB)

  • 2097148 total:交换区总量
  • 320612 used:使用的交换区总量
  • 1776536 free:空闲交换区总量
  • 82544 cached Mem:缓存的内存量

第六行:

  • 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:进程命令

2、显示多核不同核CPU的信息,按键盘1即可切换

[root@localhost ~]# top
top - 01:21:12 up 1 day, 11:26,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 350 total,   2 running, 348 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem:   1003420 total,   929324 used,    74096 free,        0 buffers
KiB Swap:  2097148 total,   320612 used,  1776536 free.    82572 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                          
     1 root      20   0   43964   2112   1252 S  0.0  0.2   0:03.06 systemd                                                                          
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.11 kthreadd

#这里使用的是虚拟机,所以这里只有一个逻辑CPU

3、以批处理模式显示进程信息

[root@localhost ~]# top -b #命令执行结果不停向下刷新

4、显示进程的完整路径,而不是命令名称

[root@localhost ~]# top -c
top - 01:27:01 up 1 day, 11:32,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 350 total,   2 running, 348 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.2 sy,  0.0 ni, 99.3 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:   1003420 total,   927432 used,    75988 free,        0 buffers
KiB Swap:  2097148 total,   320612 used,  1776536 free.    82592 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                          
  6230 root      20   0  123860   1784   1152 R  6.3  0.2   0:00.01 top -c                                                                           
     1 root      20   0   43964   2112   1252 S  0.0  0.2   0:03.06 /usr/lib/systemd/systemd --switched-root --system --deserialize 21               
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.11 [kthreadd]                                                                       
     3 root      20   0       0      0      0 S  0.0  0.0   0:10.76 [ksoftirqd/0] 
...

5、设置top命令的刷新时间

[root@localhost ~]# top -d 10
top - 01:27:59 up 1 day, 11:33,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 350 total,   2 running, 348 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.2 sy,  0.0 ni, 99.3 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:   1003420 total,   927308 used,    76112 free,        0 buffers
KiB Swap:  2097148 total,   320612 used,  1776536 free.    82596 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                          
  6232 root      20   0  123832   1700   1088 R 13.0  0.2   0:00.02 top                                                                              
  2167 root      20   0 1016460  78740   2524 S  6.5  7.8   7:56.02 mongod                                                                           
     1 root      20   0   43964   2112   1252 S  0.0  0.2   0:03.06 systemd  
...

7、显示指定进程的信息

[root@localhost ~]# top -p 2167
top - 01:28:58 up 1 day, 11:34,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem:   1003420 total,   927340 used,    76080 free,        0 buffers
KiB Swap:  2097148 total,   320612 used,  1776536 free.    82596 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                          
  2167 root      20   0 1016460  78740   2524 S  0.3  7.8   7:56.13 mongod