Linux 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
:进程 IDUSER
:进程所有者PR
:进程优先级NI
:nice 值(负值表示高优先级,正值表示低优先级)VIRT
:进程使用的虚拟内存总量(同 VSZ),单位 kb。VIRT = SWAP + RESRES
:进程使用的、未被换出的物理内存大小(同 RSS) ,单位 kb。RES = CODE + DATASHR
:共享内存大小,单位 kbS
:进程状态。D = 不可终端的睡眠状态,R = 运行,S = 睡眠,T = 跟踪/停止,Z = 僵尸进程%CPU
:上次更新到现在的 CPU 时间占用百分比%MEM
:进程使用的物理内存百分比TIME+
:进程使用的 CPU 时间总计,单位 1/100 秒COMMAND
:进程名称(命令名/命令行)
交互子命令:
另外,top 还支持交互子命令,在 top 运行窗口按下面按键,会调整显示效果。
M
:根据驻留内存大小进行排序P
:根据CPU使用百分比大小进行排序T
:根据时间/累计时间进行排序H
:将线程查看模式切换为开或关1
:显示每个逻辑 CPU 的状况h
:显示帮助画面,给出一些简短的命令总结说明k
:终止一个进程i
:忽略闲置和僵死进程,这是一个开关式命令r
:重新安排一个进程的优先级别S
:切换到累计模式s
:改变两次刷新之间的延迟时间(单位为 s),如果有小数,就换算成 ms(输入 0 值则系统将不断刷新,默认值是 5s)f
或者F
:从当前显示中添加或者删除项目o
或者O
:改变显示项目的顺序l
:切换显示平均负载和启动时间信息m
:切换显示内存信息t
:切换显示进程和 CPU 状态信息c
:切换显示命令名称和完整命令行w
:将当前设置写入 ~/.toprc 文件中
最后,按 q
或 CTRL+C
可退出程序。
示例
显示进程信息:
top
显示完整命令:
top -c