说明

  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、显示进程信息

  1. [root@localhost ~]# top
  2. top - 01:05:30 up 1 day, 11:10, 2 users, load average: 0.00, 0.02, 0.05
  3. Tasks: 350 total, 2 running, 348 sleeping, 0 stopped, 0 zombie
  4. %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
  5. KiB Mem: 1003420 total, 929148 used, 74272 free, 0 buffers
  6. KiB Swap: 2097148 total, 320612 used, 1776536 free. 82544 cached Mem
  7. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  8. 1 root 20 0 43964 2112 1252 S 0.0 0.2 0:03.06 systemd
  9. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.11 kthreadd
  10. 3 root 20 0 0 0 0 S 0.0 0.0 0:10.75 ksoftirqd/0
  11. 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
  12. ...

第一行:

  • 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即可切换

  1. [root@localhost ~]# top
  2. top - 01:21:12 up 1 day, 11:26, 2 users, load average: 0.00, 0.01, 0.05
  3. Tasks: 350 total, 2 running, 348 sleeping, 0 stopped, 0 zombie
  4. %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
  5. KiB Mem: 1003420 total, 929324 used, 74096 free, 0 buffers
  6. KiB Swap: 2097148 total, 320612 used, 1776536 free. 82572 cached Mem
  7. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  8. 1 root 20 0 43964 2112 1252 S 0.0 0.2 0:03.06 systemd
  9. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.11 kthreadd
  10. #这里使用的是虚拟机,所以这里只有一个逻辑CPU

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

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

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

  1. [root@localhost ~]# top -c
  2. top - 01:27:01 up 1 day, 11:32, 2 users, load average: 0.00, 0.01, 0.05
  3. Tasks: 350 total, 2 running, 348 sleeping, 0 stopped, 0 zombie
  4. %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
  5. KiB Mem: 1003420 total, 927432 used, 75988 free, 0 buffers
  6. KiB Swap: 2097148 total, 320612 used, 1776536 free. 82592 cached Mem
  7. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  8. 6230 root 20 0 123860 1784 1152 R 6.3 0.2 0:00.01 top -c
  9. 1 root 20 0 43964 2112 1252 S 0.0 0.2 0:03.06 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
  10. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.11 [kthreadd]
  11. 3 root 20 0 0 0 0 S 0.0 0.0 0:10.76 [ksoftirqd/0]
  12. ...

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

  1. [root@localhost ~]# top -d 10
  2. top - 01:27:59 up 1 day, 11:33, 2 users, load average: 0.00, 0.01, 0.05
  3. Tasks: 350 total, 2 running, 348 sleeping, 0 stopped, 0 zombie
  4. %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
  5. KiB Mem: 1003420 total, 927308 used, 76112 free, 0 buffers
  6. KiB Swap: 2097148 total, 320612 used, 1776536 free. 82596 cached Mem
  7. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  8. 6232 root 20 0 123832 1700 1088 R 13.0 0.2 0:00.02 top
  9. 2167 root 20 0 1016460 78740 2524 S 6.5 7.8 7:56.02 mongod
  10. 1 root 20 0 43964 2112 1252 S 0.0 0.2 0:03.06 systemd
  11. ...

7、显示指定进程的信息

  1. [root@localhost ~]# top -p 2167
  2. top - 01:28:58 up 1 day, 11:34, 2 users, load average: 0.00, 0.01, 0.05
  3. Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
  4. %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
  5. KiB Mem: 1003420 total, 927340 used, 76080 free, 0 buffers
  6. KiB Swap: 2097148 total, 320612 used, 1776536 free. 82596 cached Mem
  7. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  8. 2167 root 20 0 1016460 78740 2524 S 0.3 7.8 7:56.13 mongod