top命令是Linux下常用的性能分析工具,能够实时显示Linux系统中各个进程的资源占用状况,类似于Windows系统的任务管理器功能。
top命令的语法格式:
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
常用参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID,仅仅监控某个进程的状态。
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名
比如执行top 命令输出结果如下:
top - 07:50:17 up 99 days, 13:23, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 6.2 sy, 0.0 ni, 93.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1014908 total, 77164 free, 210040 used, 727704 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 626352 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 51744 3572 2228 S 0.0 0.4 5:55.07 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.21 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:13.46 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 6:54.45 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:42.28 watchdog/0
top命令动态进程每列的含义
PID:进程ID
USER:进程拥有者
PR:进程优先级
NI:nice值,负值表示优先级高,正值表示优先级低
VIRT:进程使用的虚拟内存总量,单位是KB,VIRT=SWAP+RES
RES:进程使用的未被换出的物理内存大小,单位KB,RES=CODE+DATA
SHR:共享内存大小,单位KB
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计,单位为1/100秒
COMMAND:进程名称(命令名/命令行)
top常用的命令示例
top
#每隔5秒显式所有进程的资源占用情况
top -d 2
#每隔2秒显式所有进程的资源占用情况
top -c
#每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789
#每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456
#每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数