top 命令

介绍

top 命令用于动态实时显示 Linux 进程的状态。

语法

top -hv|-bcEHiOSs1 -d secs -n max -u|U user -p pid -o fld -w [cols]

选项

  • -b :以批处理模式操作
  • -c :显示完整的治命令
  • -d :屏幕刷新间隔时间
  • -I :忽略失效过程
  • -s :保密模式
  • -S :累积模式
  • -i <secs> :设置间隔时间
  • -u <user> :指定用户名
  • -p <pid> :指定进程
  • -n <max> :循环显示的次数

输出说明

执行 top 命令后,会在终端输出系统进程状态信息,头部信息大致如下:

top - 18:34:11 up  9:14,  2 users,  load average: 0.93, 0.87, 0.72
Tasks: 322 total,   1 running, 264 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.4 us,  1.1 sy,  0.0 ni, 95.3 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  8029784 total,   130760 free,  4012508 used,  3886516 buff/cache
KiB Swap:  7931900 total,  7923452 free,     8448 used.  3191432 avail Mem 

对于服务器来说,重点关注:

  • load average :平均负载,后面3个值分别为当前1分钟、5分钟、15分钟的平均负载,最大值等于 CPU 核心数。
  • KiB Mem :该行数据显示内存总大小、空闲内存、已使用内存,以及用于缓存的内存大小。
  • KiB Swap :该行数据显示交换分区的情况。

接着输出一个进程列表,表头栏目如下:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

每列的含义如下:

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

交互子命令

另外,top 还支持交互子命令,在 top 运行窗口按下面按键,会调整显示效果。

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

最后,按 qCTRL+C 可退出程序。

示例

显示进程信息

top

显示完整命令

top -c

以批处理模式显示程序信息

top -b

以累积模式显示程序信息

top -S

设置信息更新次数(更新十次后退出)

top -n 10

设置信息更新时间(更新周期为3秒)

top -d 3

显示指定的进程信息(显示进程号为 12345 的进程信息,CPU、内存占用率等)

top -p 12345

使用者将不能利用交谈式指令来对行程下命令

top -s

Leave a Reply