背景
性能测试时,通常用top命令观察cpu、内存使用情况
top初体验
进入linux系统,输入top命令
参数详解
第一行:系统运行信息,显示系统运行当前时间是16:51分,系统运行了34days,当前有2个用户登录,系统平均负载压力情况为0.46(1min的平均负载压力)、0.9.0(5min的平均负载压力)、0.9.0(15min的平均负载压力)
注:load average:每隔5s检查一次活跃的进程数,然后按特定算法计算出来的。一般当这个数值除以CPU的核数得到的值大于3~5时,就标明系统的负载压力已经很高了。
第二行:显示的是任务信息,总共256个进程,1个进程正在执行,255个进程正在休眠,0个进程停止,0个进程假死
第三行:显示的是CPU运行信息,3.5us表示用户模式下CPU占比为3.5%,1.0sy标识系统模式下CPU占比1.0%,0.0ni表示改变过优先级的进程的CPU占比为0.0%,93.3id表示空闲状态的CPU占比为93.3%,2.1wa表示因为I/O等待造成的CPU占用比为2.1%,0.0st表示CPU等待虚拟机调度的时间占比,这个指标一般在虚拟机中才有,在物理机中该值一般为0
第四行:显示的是内存信息,16343540 total显示的是物理内存总量,16144616 used显示已使用的物理内存,198924 free表示空闲物理内存,171348 buffers 表示用于缓存内存大小,以上单位都是kb
第五行:显示虚拟内存使用信息,29355004 total 表示虚拟内存空间总大小,504536 used 表示虚拟内存使用大小,28850468 free 表示空闲虚拟内存,11936408 cached Mem表示缓存虚拟内存,以上单位都是kb
第六行:参数意思如下
PID:进行编号
USER:进程的持有用户
PR:进程运行的优先级,值越小优先级越高,会越早获取CPU的执行权
NI:进程的nice值,表示进程可被执行的优先级的修正数值
VIRT:进程使用虚拟内存,单位kb
RES:常驻内存,单位kb
SHR:进程使用的共享内存,单位kb
S:进程运行状态。(S:休眠;D:不可中断睡眠;R:运行中;T:跟踪/停止;Z:假死中)
%CPU:进行运行时CPU的占用比
%MEM:进程使用的内存占用比
TIME+:进程占用的CPU总时长
COMMAND:进程名
多核CPU监控
进入linux系统,输入top,按1,可监控每个逻辑cpu情况,如图:
注:理论上讲逻辑cpu的us之和+sy之和≈%CPU,实际会有偏差,作者亲身经历
查看CPU方法
总核数=物理CPU个数✖每颗物理CPU核数
总逻辑CPU数=物理CPU个数 X 每颗物理CPU的核数 X 超线程数
查看物理CPU个数
cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep “cpu cores”| uniq
查看逻辑CPU的个数
cat /proc/cpuinfo| grep “processor”| wc -l
top命令其他参数用法
top -p:查看指定进程id的top信息,例如:
top -p 12793
top -H -p:查看指定进程id的所有线程的top信息,例如:
top -H -p 27376
from:https://blog.csdn.net/xiaoxiao_chen945/article/details/121038280