CPU性能分析01

简介
CPU性能分析是做好性能测试的关键,学会查看CPU的处理能力,分析性能瓶颈

查看CPU相关信息命令
#查看CPU的信息
cat /proc/cpuinfo
CPU性能分析01
重要参数:
physical id:CPU的物理封装的编号,从0开始依次编码;
siblings: 每个物理封装上的逻辑核心数目;
cpu cores: 每个物理封装上的物理核心数目;
core id: 当前物理核心在物理封装上的编号
processor: 逻辑CPU核心编号,从0开始依次编码;

总核数 = 物理CPU的个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数

#查看物理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

#查看系统的平均负载,当前时间、系统运行了多久时间、当前登录的用户有多少,以及前 1、5 和 15 分钟系统的平均负载
uptime
CPU性能分析01
平均负载,指单位时间内,系统处于可运行状态和不中断状态的平均进程数,也就是平均进程负载数,他与cpu的使用率并没有直接关系

不可中断状态是系统对进程和硬件设备的一种保护机制

平均负载多少比较合理呢?

使用uptime 命令结果
14:05:58 up 11 days, 4:44, 3 users, load average: 0.00, 0.00, 0.00 都是0说明系统没有任何压力
在评判平均负载时,要知道系统有几个cpu,通过命令查看,有了cpu个数,我们可以判断出,平均负载比cpu个数还大时,系统已经出现了过载。

实际上uptime三个不同时间间隔的平均值,给我们提供分析系统负载的数据的来源
那么如何利用这几个值进行分析?
1、如果1分钟,5分钟,15分钟的值基本相同,差别不大,说明系统负载很平稳
2、如果1分钟的值远小于15分钟的数值,那么说明系统在最近一分钟负载在不断减少,而在过去的15分钟,却有很大的负载
3、反过来,1分钟的负载远大于15分钟数值,说明最近一分钟系统负载不断增加,这就是做性能测试,至少跑30分钟

在实际的测试环境中,平均负载多高,需要我们关注哪些?
当平均负载高于CPU数量的 70%的时候,需要分析排查负载过高的原因,一旦负载过高,就会导致进程响应变量变慢,进而影响响应的正常功能

比如单核CPU上面:load average:1.75, 0.8,8.9
(1.75-1)*100%=75%

平均负载与CPU的使用率:

CPU 使用率是单位时间内 CPU 繁忙程度的统计。而平均负载不仅包括正在使用 CPU 的进程,还包括等待 CPU 或 I/O 的进程

如何排查用户态 CPU 使用率高?
通过 top 命令找到 CPU 消耗最多的进程号