[root@yx01 ~]# top
top - 14:13:22 up 3 days, 17:32, 4 users, load average: 0.00, 0.01, 0.05
Tasks: 117 total, 1 running, 116 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 : 1882012 total, 725700 free, 846348 used, 309964 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 890168 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 52124 4248 2624 S 0.0 0.2 0:17.42 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
4 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:18.27 ksoftirqd/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 1:34.46 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:01.43 watchdog/0
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
15 root 20 0 0 0 0 S 0.0 0.0 0:00.15 khungtaskd
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md
23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 edac-poller
24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd
30 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
31 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
32 root 39 19 0 0 0 S 0.0 0.0 0:01.04 khugepaged
33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto
[root@yx01 ~]#
第1行
与uptime返回相同
14:15:42 表示当前时间
up 3 days, 17:34 表示系统起来的时间为3天17小时34分
4 users 表示当前登陆用户数
load average 后面的数表示1、5、15分钟平均负载
第2行
进程相关信息
第1段:进程总数,例如:Tasks: 117 total, 表示总共运行117个进程
第2段:正在运行的进程数,例如:1 running,
第3段:睡眠的进程数,例如:116 sleeping,
第4段:停止的进程数,例如:0 stopped,
第5段:僵尸进程数,例如:0 zombie
第3行
CPU相关信息,如果是多核CPU,按数字1可显示各核CPU信息,此时1行将转为Cpu核数行,数字1可以来回切换。
名称 | 含义 |
---|---|
us(user) | 用户空间占用CPU百分比 |
sy(system) | 内核空间占用CPU百分比 |
ni(nice) | 用户进程空间内改变过优先级的进程占用CPU百分比 |
id(idle) | 空闲CPU百分比 |
wa(iowait) | 等待输入输出的CPU时间百分比 |
hi(hard interrupt) | CPU服务于硬件中断所耗费的时间总额 |
si(soft interrupt) | CPU服务软中断所耗费的时间总额 |
st(Steal Time) | 虚拟机被hypervisor偷去的CPU时间(如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的) |
CPU使用率=100-id
-
当us很高时,证明CPU时间主要消耗在用户代码,需要优化用户代码。
-
sy很高时,说明CPU时间都消耗在内核,要么是频繁的系统调用,要么是频繁的CPU切换(进程切换/线程切换)。
-
wa很高时,说明有进程在进程频繁的IO操作,有可能是磁盘IO,也有可能是网络IO。
-
si很高时,说明CPU时间消耗在处理软中断,网络收发包会触发系统软中断,所以大量的网络小包会导致软中断的频繁触发,典型的SYN
Floor会导致si很高。
第4行
KiB Mem : 1882012 total, 725700 free, 846348 used, 309964 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 890168 avail Mem
total:物理内存总量
free:空闲内存总量
used:使用的物理内存总量
buff:表示用于读写磁盘缓存的内存
cache:表示用于读写文件缓存的内存
第5行
Swap原理是把一块磁盘空间或者一个本地文件当成内存来使用。
- avail表示可用的应用内存
第6行
表示进程状态
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 52124 4248 2624 S 0.0 0.2 0:17.42 systemd
名称 | 含义 |
---|---|
PID | 进程ID |
USER | 进程所有者的用户名,例如root |
PR | 进程调度优先级 |
NI | 进程nice值(优先级),越小的值代表越高的优先级 |
VIRT | 进程使用的虚拟内存 |
RES | 进程使用的物理内存(不包括共享内存) |
SHR | 进程使用的共享内存 |
CPU | 进程使用的CPU占比 |
MEM | 进程使用的内存占比 |
TIME | 进程启动后到现在所用的全部CPU时间(单位:分:秒.) |
COMMAND | 进程的启动命令(默认只显示二进制,top -c能够显示命令行和启动参数) |