简介
对于所有正在运行的进行和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容使用情况等信息。
内容描述
第一行:top:能够查看当前的时间;系统从开机到现在的运行时间;当前有多少用户;当前系统1分钟、5分钟、15分钟的负载情况,load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:Tasks:会统计当前进程的总数量,当前有几个进程是正在处于运行状态,有多少进程是处于睡眠状态,有多少是停止的,有多少是僵尸进程。
第三行:主要显示当前CPU的一些信息:包括用户用户态空间使用占总CPU的使用率;内核态空间使用占总CPU的使用率;等等
第四行:主要内存的状态:包括物理内存总量;还剩余多少;目前已经用了多少等信息。
第五行:swap交换分区信息:包括总共有多少;还剩余多少;目前已经使用了多少等信息。
第六行:空行
第七行及以下:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
内存信息
Mem内存信息(物理内存)
物理内存总量、已经使用的物理内存、空闲物理内存、内核缓存内存量。
Swap交换内存(虚拟内存)
交换区总量、已使用交互区总量、空闲交换区总量、缓冲的交换区总量。
相关计算公式,如下:
查询每个核的消耗情况
进入top视图后按1,就会按cpu核来显示消耗情况。
使用Top命令查看线程
默认情况下,top视图显示的为进程的cpu消耗状态。但也可以用来查询线程情况,如下:
1、top命令找到目标pid
2、top -p pid
3、shift + h 可以显示该pid下的所有线程id
4、jstack pid | grep 线程id的16进制数 -A 30
注意:pid和线程id是不一样的