测cpu八大测试点(性能测试之cpu分析)

cpu 架构 --中央处理器
  • 运算器: 真正进行计算的单元
  • 控制器: leader
  • 寄存器: 存储 指令、数据、地址
  • 时钟 控制程序运行时长
内存

程序代码、网络数据,外部数据进入cpu的桥梁,内存的速度,要比CPU的速度

cpu 查看

top

lscpu

测cpu八大测试点(性能测试之cpu分析)(1)

cat/proc /proc 虚拟文件,操作系统启动时,读取的信息,这些信息放内存中

`cat /proc/cpuinfo |grep "physical id" |sort |uniq |wc -l ` 查看物理cpu数量 sort 排序 uniq 去重 wc-l 统计行数 `cat /proc/cpuinfo | grep "cpu cores" |uniq `查看CPU的core数,即核数 `cat /proc/cpuinfo | grep "processor" |wc -l` 查看逻辑CPU数量

测cpu八大测试点(性能测试之cpu分析)(2)

cpu状态分析

us 用户进程空间中未改变过优先级的进程占用CPU百分比 -用户进程 sy: 内核空间占用CPU百分比 -系统进程 ni: 用户进程空间内改变过优先级的进程占用CPU百分比 -由内核进入非内核的状态切换的耗时 id: 空闲时间百分比 wa:空闲&等待I/O的时间百分比 -资源不够时导致cpu处于等待时间 hi: 硬中断时间百分比 -程序切换 si: 软中断时间百分比 -管理员自愿切换 st:虚拟化时被其余VM窃取时间百分比

测cpu八大测试点(性能测试之cpu分析)(3)

load average值 =cpu(cpuload ) (disk 网络 外设 的负载 ==ioload)


CPU的使用:用户进程使用时间us、系统内核运行时间Sy、空闲时间idle、管理被抢占时间st

繁忙时: us ys st si hi ni 等于cpu使用率的时间

空闲时: idle wa 的时间


常见cpu耗时分析:
  • sy: 主要应用于上下文切换 (寄存器中的资源进行切换), 可能会有上下文切换的问题,上下文切换分为自愿和非自愿切换

自愿上下文切换: 可能是因为 内存瓶颈

非自愿上下文切换: 可能是因为 cpu瓶颈, 抢占资源所导致的 (被迫执行优先级更高的指令或指令执行的时间已经到了 被迫中止当前的指令,去执行其他指令)

  • us&ni: 用户运行计算 可能是 cpu密集计算 或 死循环 或 FGC ( full gc,即对整个堆的垃圾回收 耗时长)
  • si: 软中断 可能是 资源不足或者io问题 导致的cpu抢占资源
  • wa :io 磁盘问题导致的 等待
  • st:宿主机抢占资源

load 和cpu 高时分析方法

场景1:sy 系统进程高 -------排查cpu的上下文切换

原因:

1 如果,非自愿上下文切换’多,说明cpu不够用,进程时间片到,被迫切换

2 如果 自愿上下文切换 多,说明计算用的资源不够用,可能存在I/0、内存瓶颈


场景2:si 软中断高 -------排查cpu抢占资源 结合sy 系统进程查看

1 sys高 si高 推导出===>内存 or 网络I/o问题----解决办法:排查内存 和 I/o

2 sys高 si不高 推导出===>CPU瓶颈---解决办法之一:加CPU


场景3:us 用户进程态高 -------用户程序计算

密集计算 或 死循环 或 FGC,线程池 逐步排查


,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页