一 点睛
top命令是Linux下最常用的性能分析工具,能够实时显示系统各个进程的资源占有状态,类似Windows的任务管理器。
二 实战
[root@localhost charpter05]# top
top - 18:10:19 up 3:31, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016188 total, 735664 free, 87228 used, 193296 buff/cache
KiB Swap: 4063228 total, 4063228 free, 0 used. 766204 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1283 root 20 0 157684 2144 1504 R 0.3 0.2 0:00.06 top
1 root 20 0 128168 6820 4052 S 0.0 0.7 0:01.49 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:00.06 kworker/u2:0
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 0:00.27 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/0
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md
25 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
26 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
27 root 39 19 0 0 0 S 0.0 0.0 0:00.08 khugepaged
28 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto
36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld
38 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kmpath_rdacd
39 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kpsmoused
40 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf
60 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq
92 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd
269 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
279 root 20 0 0 0 0 S 0.0 0.0 0:00.03 scsi_eh_0
280 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0
281 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1
282 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u2:2
三 说明
第1行(top):
当前系统的时间——18:10:19;
开机到目前为止所经过的时间——up 3:31;
当前登录系统的人数——1 user:
系统在最近1、5、15分钟内的平均负载——load average: 0.00, 0.01, 0.05
一般情况下,对于单个处理器来说,负载在0~1.00是正常的,超过1.00就要引起注意了。在多核处理器中,系统均值不应该高于处理器核心数。当平均负载高于 CPU 数量的 70% 时,就应该分析排查负载高的问题了。
平均负载理解参考:https://blog.csdn.net/mister_zwx/article/details/86647300
第2行(tasks):这一行显示的是进程的总量与进程的状态。
进程的总数 | 93 total |
正在运行的进程数 | 1 running |
睡眠的进程数 | 92 sleeping |
停止的进程数 | 0 stopped |
僵尸进程数 | 0 zombie |
第3行(Cpu(s)):这一行显示的是cpu的整体负载
用户空间占用CPU的百分比 | 0.0 us |
系统空间占用CPU的百分比 | 0.3 sy |
用户空间内改变过优先级的进程占用CPU百分比 | 0.0 ni |
空闲CPU百分比 | 99.7 id |
等待I/O输入输出的进程占用百分比 | 0.0 wa |
CPU处理硬件中断的时间 | 0.0 hi |
CPU处理软件中断的时间 | 0.0 si |
用于虚拟CPU情况 | 0.0 st |
通常%id值可以反映一个系统CPU的闲忙状态。
第4行(Mem):表示目前系统物理内存的使用情况
物理内存总量 | 1016188 total |
使用的物理内存总量 | 87228 used |
空闲的内存总量 | 735664 free |
用作内核缓存的内存量 | 193296 buff/cache |
第5行(Swap):表示目前系统虚拟内存的使用情况
交换区的总量 | 4063228 total |
空闲交换区总量 | 4063228 free |
已经使用的交换区总量 | 0 used |
可用交换总量 | 766204 avail Mem |
对于内存监控,在top里我们要时刻监控第5行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第6行是空行。
第7行是各进程的监控
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 | 进程名称(命令名/命令行) |
四 参考
https://blog.csdn.net/xiatianba/article/details/84691594
https://blog.csdn.net/csdn066/article/details/77171018
https://blog.csdn.net/xiaoliuliu2050/article/details/81910810