top的功能是实时监控系统内进程活动信息,也包括CPU利用率、进程状态、内存利用率等信息,为系统管理员提供实时监控系统的工具。
top - 11:15:06 up 1 day, 15:34, 1 user, load average: 0.10, 0.22, 0.26 Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie %Cpu(s): 8.4 us, 2.9 sy, 0.0 ni, 88.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2029032 total, 96756 free, 1154300 used, 777976 buff/cache KiB Swap: 0 total, 0 free, 0 used. 623812 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1595 root 20 0 774404 629916 21632 S 17.9 31.0 175:35.22 kube-apiserver 1245 root 20 0 7604488 231740 41288 S 5.0 11.4 125:54.88 etcd 1684 root 20 0 1124796 48988 12556 S 1.3 2.4 48:54.29 kubelet 750 root 20 0 48432 14232 13720 S 0.3 0.7 27:03.07 systemd-journal 1289 root 20 0 143696 48328 27024 S 0.3 2.4 4:40.51 kube-scheduler 1622 root 20 0 332544 30724 20672 S 0.3 1.5 2:47.29 flanneld 1701 root 20 0 391248 14088 4688 S 0.3 0.7 4:48.56 containerd 13159 root 20 0 162144 4548 3808 R 0.3 0.2 0:00.04 top 1 root 20 0 125492 5184 3804 S 0.0 0.3 0:44.62 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:03.80 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 2:30.09 rcu_sched 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 4:15.79 rcuos/0 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 11 root rt 0 0 0 0 S 0.0 0.0 0:01.92 migration/0 12 root rt 0 0 0 0 S 0.0 0.0 0:00.76 watchdog/0 13 root rt 0 0 0 0 S 0.0 0.0 0:00.73 watchdog/1 14 root rt 0 0 0 0 S 0.0 0.0 0:01.92 migration/1 15 root 20 0 0 0 0 S 0.0 0.0 0:06.79 ksoftirqd/1 18 root 20 0 0 0 0 S 0.0 0.0 0:52.27 rcuos/1
第一行用于显示系统的活动信息
请在这里输入引用内容
当前时间
系统启动后所经历的 时间
系统中的当前用户数
系统负载在最近1分钟、5分钟、15分钟内的负载平均值。
第二行为系统内进程信息
请在这里输入引用内容
当前系统的进程总数
当前系统正在运行的进程数
当前系统休眠的进程数
当前系统进程停止状态的进程数
当前系统进程处于僵死状态的进程数
第三行为与CPU相关的信息
请在这里输入引用内容
us:进程在用户地址空间中消耗 CPU 时间的百分比。
sy:进程在内核地址空间中消耗 CPU 时间的百分比。
ni:可以通过 nice 值调整进程用户态的优先级。
id:CPU 处于 idle 状态的百分比。一般情况下, us + ni + id 应该接近 100%。
wa:CPU 等待磁盘 IO 操作的时间。
hi & si:这两个值表示系统处理中断消耗的时间。中断分为硬中断和软中断,hi 表示处理硬中断消耗的时间,si 表示处理软中断消耗的时间。
st:只有 Linux 在作为虚拟机运行时 st 才是有意义的。
第四行为内存情况
请在这里输入引用内容
total 列显示系统总的可用物理内存大小。
free 列显示还有多少物理内存可用。
used 列显示已经被使用的物理内存。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
第五行为交换分区使用事情
请在这里输入引用内容
total 列显示系统总的可用交换空间大小。
free 列显示还有多少交换空间可用。
used 列显示已经被使用的交换空间。
available 列显示还可以被应用程序使用的物理内存大小。
第六行为任务的具体分类
请在这里输入引用内容
PID:表示进程ID。
USER:表示进程所有者的有效用户名称。
PR:表示进程执行的优先级,PR 的值是以 Linux 内核的视角看到的进程执行的优先级。
NI:从用户视角看到的进程执行优先级。注意上图中NI值为-20的两个进程,它们的PR值都是0。
VIRT:表示进程使用的虚拟内存大小。
RES:表示进程使用的物理内存大小。
SHR:表示进程使用的共享内存的大小。
S:表示进程当前的状态。S 值有下面几种:
D:不可中断的睡眠状态(uninterruptible sleep)
I:idle 状态
R:进程在 running 队列中,正在运行或准备运行(running)
S:睡眠状态(sleeping)
T:停止状态(stopped by job control signal)
t:跟踪状态(stopped by debugger during trace)
Z:僵尸状态(zombie)
%CPU:表示进程使用 CPU 的百分比。
%MEM:表示进程使用内存的百分比。
TIME+:表示进程累计使用的 CPU 时间。
COMMAND:表示运行进程对应的程序。
常用快捷键:
f 可以进入任务信息的配置界面添加更多的信息
e 来进行切换,比如我可以把它切换为以 MB 为单位
1 可以查看各个 CPU 核心单独的数据
W 保存修改的配置
M 以 %MEM 列排序
N 以 PID 列排序
P 以 %CPU 列排序
T 以 TIME+ 列排序
R 可以将当期排序的结果反转。
c 来切换 COMMAND 列的显示模式
u 查看以某个用户权限启动的进程
h 或者是 ? 可以打开 top 命令的帮助文档