详解Top
top命令的上部分显示系统的整体信息,下部分显示进程的统计信息,默认是按照CPU使用率从高到底排序。
快捷键
M(大写):表示将结果按照内存(MEM)从高到低进行降序排列;
P(大写):表示将结果按照CPU 使用率从高到低进行降序排列;
1 :显示各个cpu 的详细信息,默认top显示的是Cpu(s),即CPU整体信息。
q:退出
1)上部分
第一行
top - 20:23:21 up 23:15, 6 users, load average: 0.50, 0.35, 0.33
内容 | 说明 |
20:23:21 | 当前系统时间,24小时制 |
up 23:15 | 系统已经运行了23个小时15分钟 |
6 users | 当前系统有6个用户登录 |
load average: 0.50, 0.35, 0.33 | 系统的平均负载,分别是前1分钟、5分钟、15分钟。如果 CPU 是单核的,则这个数值超过 1 就是高负载;如果 CPU 是四核的,则这个数值超过 4 就是高负载。 |
注:重点关心负载。负载是指在CPU 队列中有多少数目的线程,以及当前有多少进程线程数目被执行的组合。
负载 = 正在运行的轻量进程数 + 运行队列中的轻量进程数
例如:一个双核系统执行了2个线程,还有4个在运行队列中,则 load 应该为 6。
经验之谈:如果一个总核数=8核心的CPU,理论上平均负载达到16,也还可以坚持很长一段时间。
一般性的指导原则是:如果在很长一段时间里,运行队列的长度一直都超过虚拟处理器个数的1倍,就需要关注了,如果3~4倍,需要立刻引起注意或采取行动。
第二行
Tasks: 466 total, 4 running, 462 sleeping, 0 stopped, 0 zombie
内容 | 说明 |
Tasks: 466 total | 系统中的进程总数 |
4 runningl | 正在运行的进程数 |
462 sleeping | 睡眠的进程数 |
0 stopped | 正在停止的进程数 |
0 zombie | 僵尸进程数。如果不是 0,则需要手工检查僵尸进程 |
第三行
%Cpu(s): 1.7 us, 5.0 sy, 0.0 ni, 93.1 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
内容 | 说明 |
1.7 us | 用户态占用的CPU百分比 |
5.0 sy | 内核态占用的CPU百分比 |
0.0 ni | 改变过优先级的用户进程占用的CPU 百分比 |
93.1 id | idle缩写,空闲CPU 占用的CPU 百分比 |
0.0 wa | 等待I/O的进程占用的CPU百分比 |
0.0 hi | 硬中断请求服务占用的CPU 百分比 |
0.2 si | 软中断请求服务占用的 CPU 百分比 |
0.0 st | st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比 |
第四行
KiB Mem : 2033552 total, 106788 free, 1322952 used, 603812 buff/cache
内容 | 说明 |
2033552 total | 物理内存的总量,单位为KB |
106788 free | 空闲的物理内存数量 |
1322952 used | 己经使用的物理内存数量 |
603812 buff/cache | 作为缓冲的内存数量 |
注:total = free + used + buff/cache
例如:2033552 = 106788(free) +1322952(used) +603812(buff/cache)
第五行
KiB Swap: 2097148 total, 1948152 free, 148996 used. 479156 avail Mem
内容 | 说明 |
2097148 total | 交换分区(虚拟内存)的总大小 |
1948152 free | 空闲交换分区的大小 |
148996 used | 已经使用的交换分区的大小 |
479156 avail Mem | 可用内存 |
2)下部分
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
84698 root 20 0 145796 5728 4232 S 1.0 0.3 3:11.89 sshd
48739 root 20 0 145748 5712 4224 S 0.7 0.3 4:21.43 sshd
84944 root 20 0 149248 3020 1464 S 0.7 0.1 1:33.42 top
内容 | 说明 |
PID | 进程ID |
USER | 该进程所属的用户 |
PR | 进程优先级,值越大表示优先级越高。RT代表任务为实时优先级,该优先级高于标准范围 |
NI | 进程的nice值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位为 KB,VIRT=SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位为 KB,RES=CODE+DATA |
SHR | 共享内存大小,单位为 KB。计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR) |
S | 进程状态。其中S 表示睡眠,R 表示运行,Z表示僵尸进程(要求终止还未终止),D表示不可中断的睡眠状态,T表示跟踪状态 |
%CPU | 该进程占用 CPU 的百分比,上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU 时间总计,单位为1/100秒 |
COMMAND | 进程名,命令名/命令行 |
小扩展:uptime命令
uptime是系统性能面板命令的精简版,内容等于top命令的第一行