硬件性能分析
一、CPU性能分析
1、CPU:中央处理器,在服务器中是计算的核心
2、影响CPU性能的因素:架构,主频,核心数
2.1 架构:AMD(X86)、ARM(mac系统用M1)
2.2 主频:GHz 赫兹---期望这个越高越好(2~3GHz),赫兹越大运算的速度就越快
2.3 核数:多核,核数越多,理论上技术能力越强
3、CPU的结构:计算单元,寄存单元,控制单元,时钟
3.1 计算单元:主要处理需要计算的事务
3.2 寄存单元:CPU中寄存器(cache缓存,用来临时存储一些数据、指令)
3.2.1 L1Ccache缓存区、L2Ccache缓存区、L3Ccache缓存区总共空间一般也只有几十MB
3.2.2 寄存器的空间大小我们期望的是越大越好,但是寄存器的成本会很高
3.2.2.1 内存条上内存空间,比CPU中寄存器的成本要低很多,也是用于临时存储数据的,所以内存的空间可以做的很大。但是,我们内存的速度,要比CPU中寄存器的速度要慢很多。
3.2.2.2 磁盘是最大数据存储空间,但是磁盘的速度又要比内存的速度慢很多
3.3 控制单元:指令计数器,控制指令的切换,比如从一个程序切换到另外一个程序
3.4 时钟:时钟片
4、内核,线程,架构
4.1 内核:医院的医生,治疗病人
4.2 线程:医院的护士,接待照顾病人
4.3 架构:医院的楼层结构和医疗基础设施
4.4 1个医生对应1个护士,叫单核单线程;1个医生对多个护士叫单核多线程
5、查看CPU信息:lscpu
Architecture: 看出cpu的架构 CPU op-mode(s): CPU支持多少位的系统 CPU(s): 看出有几核CPU Thread(s) per core: 看出是否超线程 1,没有超线程 Core(s) per socket: 1个插槽中有几个核CPU Flags: cpu支持指令集
6、命令行:
cat /proc/cpuinfo 内存中记录的cpu信息 cat /proc/cpuinfo |grep "physical id" |sort |uniq |wc -l 查看物理cpu数 量 cat /proc/cpuinfo | grep "cpu cores" |uniq 查看CPU的core数,即核数 cat /proc/cpuinfo | grep "processor" |wc -l 查看逻辑CPU数量
7、top中系统负载:系统负载数据 = cpu负载 + io负载
7.1 io负载 = 网络负载 + 外设负载 + 磁盘负载
7.1.1 io负载主要体现在wa数据
7.2 cpu负载 包括(us、sy、ni、hi、si、st、wa)
7.2.1 没有负载主要是:id,wa数据
7.3 cpu(s)使用率 : us+sy+ni+wa+hi+si+st + id =100
8、cpu数据,分析性能:
8.1 sy:内核使用率,与上下文切换有关系
8.1.1 上下文:程序的寄存器与计数器
8.1.2 上下文的切换:前面一个程序的寄存器和计数器指令保存,打开下一个程序的寄存器和指令器进行执行
8.1.3 自愿上下文切换:指内存存在瓶颈时,正在执行的指令,缺少数据,没法继续执行,只能通过切换到其他进程上获取数据然后才能继续前面的指令
8.1.4 非自愿上下文切换:cpu瓶颈(抢占资源),强制切换到其他指令
8.2 us+in:CPU密集计算 or FGC or 死循环
8.2.1 GC:资源回收
8.3 si: cpu竞争抢资源 or 资源不够I/O问题
8.4 wa:等待资源 -----> I/O问题(磁盘网络)
标签:分析,负载,wa,性能,cpu,硬件,切换,寄存器,CPU From: https://www.cnblogs.com/hailangboke/p/16349995.html