前几天被问到在Linux
命令行下输入top
命令之后出现的信息表示什么意思,今天就总结一下。
top
命令是Linux
下常用的性能分析工具,但本质上它提供了实时的对系统处理器的状态监视
在命令行中输入top
将输出一下信息:
top - 23:16:12 up 7:40, 1 user, load average: 0.97, 0.98, 1.01
Tasks: 440 total, 2 running, 438 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.3 us, 1.4 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 13183891+total, 12378241+free, 3884532 used, 4171956 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 12719112+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11746 jenkins 20 0 159972 4760 1600 R 99.7 0.0 362:41.65 root/2
42 root 20 0 0 0 0 S 4.3 0.0 14:46.50 rcu_sched
68 root 20 0 0 0 0 S 2.6 0.0 0:55.10 rcuos/25
11414 jenkins 20 0 42.134g 1.652g 24516 S 0.7 1.3 2:37.54 java
49 root 20 0 0 0 0 S 0.3 0.0 0:32.35 rcuos/6
6818 root 20 0 0 0 0 S 0.3 0.0 0:34.33 kworker/0:1
14702 root 20 0 0 0 0 S 0.3 0.0 0:00.26 kworker/2:0
15491 txq 20 0 158044 2616 1552 R 0.3 0.0 0:00.13 top
1 root 20 0 45892 8580 3908 S 0.0 0.0 0:13.06 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.06 kthreadd
前五行是当前整个系统资源的统计信息。
第一行是任务队列,包括当前时间,系统运行的总时间,系统用户登陆的数量,以及1分钟,5分钟,15分钟系统的负载情况。
第二行是Tasks
信息,显示当前系统总共的进程数为440,运行状态的进程有两个,438个处于休眠状态,0个停止,0个僵尸进程。
第三行是CPU
信息,很多人可能会忽略这些信息,我之前就是,所以详细说一下。
%Cpu(s): 1.3 us, 1.4 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
us
user CPU time ----用户空间占用CPU
百分比
sy
system CPU time----内核空间占用CPU
百分比
ni
nice CPU time----用户进程空间内改变过优先级的进程占用CPU
百分比
id
idle----空闲CPU
百分比
wa
iowait---- 等待输入输出的CPU
时间百分比
hi
hardware irq----硬件中断
si
software irq----软件中断
st
steal time----实时
具体对应到第三行的详细信息,大家自己对照一下就行,或者在你命令行中试一下。
第四行Memory
的状态信息,总共13183891+内存,空闲12378241+,使用3884532,缓存为4171956
第五行Swap
交换分区信息,总共0,空闲0,使用0,缓存交换区总量12719112+
第六行是各个进程监视的项目列
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID
— 进程id
USER
— 进程所有者
PR
— 进程优先级
NI
— nice值。负值表示高优先级,正值表示低优先级
VIRT
— 进程使用的虚拟内存总量。VIRT=SWAP+RES
RES
— 进程使用的、未被换出的物理内存大小。RES=CODE+DATA
SHR
— 共享内存大小
S
— 进程状态。D
=不可中断的睡眠状态 R
=运行 S
=睡眠 T
=跟踪/停止 Z
=僵尸进程
%CPU
— 上次更新到现在的CPU
时间占用百分比
%MEM
— 进程使用的物理内存百分比
TIME+
— 进程使用的CPU
时间总计
COMMAND
— 进程名称(命令名/命令行)
对应的每个进程的信息,大家可以自己看一下。
如果你在命令行下再输入1
,输出如下:
top - 23:16:12 up 7:40, 1 user, load average: 0.97, 0.98, 1.01
Tasks: 440 total, 2 running, 438 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu8 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu9 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu10 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu11 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu12 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu13 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu14 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu15 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu16 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu17 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu18 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu19 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu20 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu21 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu22 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu23 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu24 : 44.2 us, 43.9 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 12.0 si, 0.0 st
%Cpu25 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu26 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu27 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu28 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu29 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu30 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu31 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 13183891+total, 12377862+free, 3887628 used, 4172660 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 12718814+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11746 jenkins 20 0 159972 4760 1600 R 100.0 0.0 393:16.94 root/2
42 root 20 0 0 0 0 S 2.7 0.0 15:59.27 rcu_sched
67 root 20 0 0 0 0 S 1.3 0.0 1:03.60 rcuos/24
输入1
可以查看每个逻辑CPU
的情况,如上总共有32个逻辑CPU
;
其他命令:
输入b
,显示高亮,shift+>
和shift+<
可以左右切换
输入x
也是显示高亮,但没有b
那么明显,同理shift+>
和shift+<
可以左右切换
直接输入top -c
,会显示完整命令,输出如下:
top - 23:56:31 up 8:20, 1 user, load average: 0.95, 0.97, 1.00
Tasks: 439 total, 2 running, 437 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.4 us, 1.5 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 13183891+total, 12377344+free, 3892304 used, 4173168 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 12718340+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11746 jenkins 20 0 159972 4760 1600 R 100.0 0.0 402:57.42 root/2
42 root 20 0 0 0 0 S 3.3 0.0 16:21.24 [rcu_sched]
57 root 20 0 0 0 0 S 0.7 0.0 1:03.01 [rcuos/14]
63 root 20 0 0 0 0 S 0.3 0.0 0:29.22 [rcuos/20]
7933 root 20 0 0 0 0 S 0.3 0.0 0:05.50 [kworker/20:0]
11414 jenkins 20 0 42.134g 1.661g 24516 S 0.3 1.3 2:47.29 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -j+
14702 root 20 0 0 0 0 S 0.3 0.0 0:01.48 [kworker/2:0]
15098 root 20 0 0 0 0 S 0.3 0.0 0:01.37 [kworker/6:2]
18465 txq 20 0 158088 2720 1640 R 0.3 0.0 0:00.18 top -c
1 root 20 0 45892 8580 3908 S 0.0 0.0 0:13.78 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
2 root 20 0 0 0 0 S 0.0 0.0 0:00.06 [kthreadd]
3 root 20 0 0 0 0 S 0.0 0.0 0:00.34 [ksoftirqd/0]
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H]
8 root rt 0 0 0 0 S 0.0 0.0 0:00.35 [migration/0]
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh]
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcuob/0]
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcuob/1]
输入q
是退出,还有其他命令参数,用到的时候再说,今天先统计这几个。