​top​ 命令是一个系统监测工具,它显示了当前系统中最消耗资源的进程,帮助系统管理员快速了解系统的运行情况和性能瓶颈。它在 Linux 操作系统中是一个非常常用的命令。

[root@linuxtestb ~]# top
top - 10:07:16 up 117 days, 16:41, 1 user, load average: 3.67, 4.06, 5.30
Tasks: 436 total, 4 running, 432 sleeping, 0 stopped, 0 zombie
Cpu(s) : 35.4 us, 11.2 sy, 0.0 ni, 52.6 id, 0.0 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem : 65957724 total, 6873140 free, 50758152 used, 8326432 buff/cache
KiB Swap: 16777212 total, 7716736 free, 9060476 used. 10570308 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 21113 root 20 0 5821540 1.3g 5148 S 9.4 2.1 11898:28 java

80170 root 20 0 2349008 674156 4788 S 0.0 1.0 6577:50 mysqld
  • 第一行 top
  • 10:07:16 :系统当前时间
  • 117 days, 16:41 :系统的运行时间,表示系统自上次启动以来运行的时间
  • 1 user :当前登录系统的用户数
  • load average: 3.67, 4.06, 5.30 :系统负载的度量,表示当前正在运行或等待资源的进程数的平均值。负载平均值以三个数字表示,分别代表过去 1、5、15 分钟的平均值。
  • 第二行 TASK
  • Tasks: 436 total :系统上正在运行的进程总数。
  • 4 running : 正在运行进程数。
  • 432 sleeping : 睡眠进程数。
  • 0 stopped :停止进程数。
  • 0 zombie :僵尸状态进程数。
  • 第三行 Cpu
  • 35.4 us :表示用户空间进程使用 的 CPU 时间。
  • 11.2 sy :表示内核空间进程使用 的 CPU 时间。
  • 0.0 ni :表示用户空间进程使用了被明确设置了 nice 值的 CPU 时间,这是控制进程 CPU 优先级的机制。
  • 52.6 id : 表示 CPU 空闲时间占用了 52.6% 的 CPU 时间。
  • 0.0 wa : 表示因等待 IO 而占用了 CPU 时间,即等待输入输出(I/O wait)时间。
  • 0.0 hi :表示处理硬中断占用了 CPU 时间。
  • 0.7 si : 表示处理软中断占用了 CPU 时间。
  • 0.0 st: 表示被虚拟机使用的 CPU 时间,例如在虚拟机环境中运行的其他操作系统。
  • 第四行 KiB Mem
  • 65957724 KiB total : 表示系统总内存。
  • 6873140 KiB free : 表示空闲内存。
  • 50758152 KiB used : 表示已使用内存。
  • 8326432 KiB buff/cache : 表示缓存和缓冲区占用内存。
  • 第五行 KiB Swap
  • 16777212 KiB total : 表示系统总交换空间。
  • 7716736 KiB free : 表示空闲交换空间。
  • 9060476 KiB used : 表示已使用交换空间。
  • 10570308 avail Mem : 表示可用内存,也就是实际可用的内存加上交换空间。
  • 第六行
  • "PID" 表示进程的 ID,是系统中唯一的标识符。
  • "USER" 表示进程的所有者,是指运行该进程的用户的名称。
  • "PR" 表示进程的优先级。
  • "NI" 表示进程的 nice 值,该值决定了进程的资源分配优先级。
  • "VIRT" 表示进程占用的虚拟内存,单位为 KB。
  • "RES" 表示进程占用的实际物理内存,单位为 KB。
  • "SHR" 表示进程共享内存的大小,单位为 KB。
  • "S" 表示进程的状态,其中:"R" 表示进程正在运行,"S" 表示进程处于睡眠状态,"T" 表示进程已停止,"Z" 表示进程处于僵尸状态。
  • "%CPU" 表示进程使用的 CPU 时间的百分比。
  • "%MEM" 表示进程占用内存的百分比。
  • "TIME+" 表示进程运行的总时间。
  • "COMMAND" 表示进程的名称。

常用参数

top" 命令支持一些参数,下面是一些常用的参数:

  • ​-d​​:设置刷新频率。
  • ​-n​​:设置刷新的次数。
  • ​-p​​:显示指定进程的信息。
  • ​-u​​:显示指定用户的进程信息。
  • ​-o​​:指定排序字段。
  • ​-h​​:显示帮助信息。

使用样例

  1. 显示每 2 秒刷新一次且仅刷新 10 次的进程信息:
top -d 2 -n 10
  1. 显示指定用户 ​​john​​ 的进程信息:
top -u john
  1. 显示指定进程 ID 为 123 的信息:
top -p 123
  1. 以内存使用率排序:
top -o %MEM