本文首发于我的公众号码农之屋(id: Spider1818),专注于干货分享,包含但不限于Java编程、网络技术、Linux内核及实操、容器技术等。欢迎大家关注,二维码文末可以扫。
top简介
top命令用于实时显示系统的动态信息,能够实时显示系统中各个进程的资源占用情况(CPU、内存等信息),是linux常用的性能分析工具。该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了解进程运行状态。
命令格式
top [options]
top常用options
options | 说明 |
-d <秒数> | 指定间隔设定秒数动态更新数据 |
-p | 监控指定PID的进程信息 |
-i | 不显示任何闲置和僵死的进程信息 |
-c | 显示完成命令行而不仅仅是命令名 |
-b | 使用批处理模式输出,通常与-n一起用,将top命令结果重定向到文件中 |
-n <次数> | 指定top命令执行的次数 |
-q | 没有任何延迟的显示速度,如果使用者是有superuser权限,则top将会以最高的优先序执行 |
-s | 是top命令在安全模式中运行,避免在交互命令中带来的潜在危险 |
常用交互命令
交互命令 | 说明 |
? or h | 显示交互模式的帮助说明 |
P | 按照CPU使用百分比大小进行排序(默认值) |
M | 按照内存使用率大小进行排序 |
k | 终止进程(在安全模式中此命令被屏蔽),系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号 |
i | 忽略任何闲置和僵死的进程,该命令为开关式命令 |
s | 改变两次刷新之间的时间。系统将提示用户输入新的刷新时间,单位为s(如果有小数,则换算成m s;如果输入0,则系统将不断刷新,默认值是5 s) |
c | 切换显示命令名称和完整命令行 |
1 | 实时显示各CPU状态信息(多核CPU监控) |
q | 退出top命令 |
top示例
1)显示当前系统状态信息,并对统计信息进行解读
root@LTY:/opt # top
top - 20:26:22up 22 days, 8:27, 4 users, load average: 1.83, 1.42, 1.33
Tasks: 340total, 1 running, 339 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 2.3 sy, 0.0 ni, 94.9 id, 0.1 wa, 0.2 hi, 0.1 si, 0.0 st
MiB Mem : 28613.2 total, 5007.8 free, 4737.8 used, 18867.5 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 22952.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19661 root 20 03405208 169420 70624 S 12.0 0.6 1196:30 kubelet
18529 root 20 0 3941700 125728 35676 S 8.0 0.4 2301:35 dockerd
12212 root 20 0 108420 9616 5076 S 1.3 0.0 108:11.24 containerd-shim
18563 root 20 0 4334028 57104 12880 S 1.3 0.2 257:39.42 containerd
10977 root 20 0 108420 10252 5076 S 1.0 0.0 236:46.78 containerd-shim
18602 root 20 0 2140800 58568 29980 S 1.0 0.2 347:15.48 canal-agent
1 root 20 0 180960 10676 7048 S 0.7 0.0 197:18.17 systemd
说明:已使用容量 + 可用容量不一定等于总容量(分区可能预留少量空间给管理员使用,即便磁盘使用率已达到100%,管理员仍能登陆并解决问题)
描述 | 说明 |
20:26:22 | 当前系统时间 |
up 22 days, 8:27 | 当前系统已经运行了22天8小时27分钟 |
4 users | 当前有4个用户登录系统 |
load average: 1.83, 1.42, 1.33 | load average后面的三个数分别是5分钟、10分钟、15分钟的负载情况(load average值是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了) |
Tasks: 340 total | 系统现在共有340个进程 |
1 running, 339 sleeping, 0 stopped, 0 zombie | 运行中的进程1个,339个休眠中,停止和僵尸进程数都为0 |
2.3 us, 2.3 sy, 0.0 ni, 94.9 id | us:用户进程(未调整优先级)占用CPU百分比 sy:内核进程占用CPU百分比 ni:用户进程(已调整优先级)占用CPU百分比 id:空闲CPU百分比 |
0.1 wa, 0.2 hi, 0.1 si, 0.0 st | wa:用于等待IO完成的CPU百分比 hi:硬中断占用CPU百分比 si:软终端占用CPU百分比 st:host被hypervisor偷走的CPU百分比 |
MiB Mem : 28613.2 total, 5007.8 free, 4737.8 used, 18867.5 buff/cache | MiB Mem:物理内存 28613.2 total:物理内存总量28613.2M 5007.8 free:空闲物理内存总量5007.8M 4737.8 used:已使用物理内存总量4737.8M 18867.5 buff/cache:18867.5M用于buff/cache使用 |
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 22952.0 avail Mem | MiB Swap:Swap交换分区 0.0 total:交换区内存为0 0.0 free:空闲交换区内存为0 0.0 used:已使用的交换区内存为0 22952.0 avail Mem:可用于进程下次分配的物理内存总量 |
PID | 进程id |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb |
RES | 进程使用的、末被换出的物理内存大小,单位kb |
SHR | 共享内存大小,单位kb |
S | 进程状态 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令 |
2)进入top交互界面,然后查看各CPU的状态信息(结果显示共有16个核)
root@LTY:/opt # top
top - 20:26:57up 22 days, 8:28, 4 users, load average: 1.52, 1.39, 1.32
Tasks: 340total, 1 running, 339 sleeping, 0 stopped, 0 zombie
%Cpu0 : 1.7us, 2.0 sy, 0.0 ni, 95.7 id, 0.3 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu1 : 3.7us, 2.7 sy, 0.0 ni, 93.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 2.0us, 5.6 sy, 0.0 ni, 91.7 id, 0.3 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu3 : 3.0us, 1.7 sy, 0.0 ni, 95.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 3.3us, 1.7 sy, 0.0 ni, 94.3 id, 0.3 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu5 : 3.6us, 1.7 sy, 0.0 ni, 94.0 id, 0.0 wa, 0.3 hi, 0.3 si, 0.0 st
%Cpu6 : 3.6us, 3.6 sy, 0.0 ni, 92.1 id, 0.0 wa, 0.3 hi, 0.3 si, 0.0 st
%Cpu7 : 3.3us, 2.7 sy, 0.0 ni, 93.6 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu8 : 2.0us, 2.0 sy, 0.0 ni, 94.7 id, 1.0 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu9 : 3.7us, 2.0 sy, 0.0 ni, 93.4 id, 0.3 wa, 0.3 hi, 0.3 si, 0.0 st
%Cpu10 : 2.6 us, 1.7 sy, 0.0 ni, 95.0 id, 0.3 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu11 : 4.0 us, 1.0 sy, 0.0 ni, 94.4 id, 0.3 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu12 : 2.0 us, 3.3 sy, 0.0 ni, 94.1 id, 0.3 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu13 : 4.3 us, 2.0 sy, 0.0 ni, 93.4 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu14 : 2.0 us, 2.3 sy, 0.0 ni, 95.0 id, 0.3 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu15 : 3.7 us, 3.3 sy, 0.0 ni, 92.7 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
MiB Mem : 28613.2 total, 5008.3 free, 4737.1 used, 18867.8 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 22952.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19661 root 20 03405208 169420 70624 S 12.0 0.6 1196:30 kubelet
18529 root 20 0 3941700 125728 35676 S 8.0 0.4 2301:35 dockerd
12212 root 20 0 108420 9616 5076 S 1.3 0.0 108:11.24 containerd-shim
18563 root 20 0 4334028 57104 12880 S 1.3 0.2 257:39.42 containerd
10977 root 20 0 108420 10252 5076 S 1.0 0.0 236:46.78 containerd-shim
18602 root 20 0 2140800 58568 29980 S 1.0 0.2 347:15.48 canal-agent
1 root 20 0 180960 10676 7048 S 0.7 0.0 197:18.17 systemd
我的公众号「码农之屋」(id: Spider1818) ,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎大家关注。