文章目录
一、top命令详细说明
top - 11:32:29 up 122 days, 12:59, 1 user, load average: 0.14, 0.15, 0.18
Tasks: 234 total, 2 running, 229 sleeping, 0 stopped, 3 zombie
%Cpu(s): 2.0 us, 1.4 sy, 0.1 ni, 96.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 24687968 total, 2057672 free, 17373880 used, 5256416 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 6458364 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8656 root 20 0 2495348 92612 5120 S 8.6 0.4 13118:31 cadvisor
394 elastic+ 20 0 16.9g 7.0g 278260 S 5.9 29.9 255:40.75 java
1.第一行解释
top - 11:32:29 //显示系统当前时间
up 122 days, 12:59,//运行时间:显示系统自上次启动以来的运行时间
1 user, //登录用户数:显示当前有多少个用户登录到系统中
load average: 0.14, 0.15, 0.18//负载平均值:显示系统的负载情况,包括1分钟、5分钟和15分钟的平均值
2.第二行解释:进程数
Tasks: 234 total,//进程总数:显示当前系统中所有进程的数量
2 running,//运行中的进程数:显示当前正在运行的进程数量
229 sleeping,//睡眠中的进程数:显示当前处于睡眠状态的进程数量
0 stopped,//停止的进程数:显示当前处于停止状态的进程数量
3 zombie//僵尸进程数:显示当前处于僵尸状态的进程数量
3.第三行解释:CPU使用情况
%Cpu(s): //CPU使用情况(这里是所有逻辑CPU的平均使用率)
2.0 us,//用户CPU时间:显示所有进程所消耗的用户CPU时间的百分比(大部分进程都运行在用户态,通常都是希望用户空间CPU越高越好)
1.4 sy,//系统CPU时间:显示所有进程所消耗的系统CPU时间的百分比。(Linux内核态占用的CPU时间,系统 CPU占用越高,表明系统某部分存在瓶颈。通常这个值越低越好)
0.1 ni,//(nice 进程的优先级为负数所占CPU的百分比。运行已调整优先级的用户进程的CPU时间)
96.5 id,空闲CPU时间:显示当前系统中空闲CPU时间的百分比
0.0 wa,//等待IO所占CPU的百分比,用于等待IO完成的CPU时间。不是值不是说越大越好,对于IO密集型的集群来说,这个值偏大是很正常的,大家需要根据具体情况具体分析
0.0 hi,//硬中断所占CPU的百分比,处理硬件中断的CPU时间
0.0 si,//软中断所占CPU的百分比,处理软件中断的CPU时间
0.0 st//虚拟机的CPU占用宿主机CPU的百分比。这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
用户CPU和系统CPU是指CPU资源的两个不同的使用方式。用户CPU指的是由用户进程使用的CPU资源,而系统CPU指的是由内核进程使用的CPU资源
4.第四行解释:内存使用情况
KiB Mem : //MEM内存相关参数说明
24687968 total, //物理内存总量
2057672 free,//空闲内存总量
17373880 used,//使用中的内存总量
5256416 buff/cache//缓存的内存量
5.第五行解释:交换区
KiB Swap: //SWAP交换分区相关参数说明
0 total,//交换区总量
0 free,//空闲交换区总量
0 used.//使用的交换区总量
6458364 avail Mem//可用的交换区总量
6.第六行解释:进程说明表头
PID//进程的唯一ID编号,用于标识一个进程
USER//进程的所属者
PR//进程的优先级级别,该值越小,优先级越高。进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态
NI//进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT//进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES//驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR//SHR是进程使用的共享内存。共享内存大小,单位kb
S//这个是进程的状态。它有以下不同的值:
D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
%CPU//自从上一次更新时到现在任务所使用的CPU时间百分比(所有逻辑CPU上的总使用率,而不是单个逻辑CPU的使用率或平均使用率)
%MEM//进程使用的可用物理内存百分比
TIME+//任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
COMMAND//运行进程所使用的命令。进程名称(命令名/命令行)
二、常见top命令
1.交互式指令
- 按数字“1”查看各个逻辑CPU的使用情况
- 按大写“P”CPU降序查看
- 按大写“M”内存降序查看
- 按小写“h”键:显示帮助信息,列出所有可用的交互式指令。按ESC退出
- 按小写“q”推出显示
2.命令式指令
//查看指定进程id的top信息
top -p 12793
//查看指定进程id的所有线程的top信息
top -H -p 27376
//间隔5秒更新显示一次
top -d 5
//显示root用户进程信息
top -u root
//按照%CPU对进程进行排序
top -o %CPU