性能测试之cpu 分析

news/2024/11/29 18:33:53/

cpu 架构  --中央处理器

  • 运算器: 真正进行计算的单元
  • 控制器: leader
  • 寄存器: 存储 指令、数据、地址
  • 时钟 控制程序运行时长

内存

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

cpu 查看

top

lscpu

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状态分析

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

 

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,线程池  逐步排查


http://www.ppmy.cn/news/148816.html

相关文章

【性能测试】系统常用监控- -CPU

性能测试系统常用监控- -CPU 文章目录 性能测试系统常用监控- -CPU前言一、常用概念二、性能指标三、性能分析四、调优方法五、常用分析5.1 top命令解析5.2分析思路 前言 在性能测试过程中CPU负载状态是重要监控指标项,它综合反应了系统的负载情况,根据…

CPU性能测试基准(EEMBC-CoreMark)

在嵌入式系统行业用于评价CPU性能指标的标准主要有三种:Dhrystone、MIPS、CoreMark,其中CoreMark是一种新兴流行的嵌入式系统处理器测试基准,被认为是比Dhrystone和MIPS更具有实际价值的测试基准。今天痞子衡就和大家详细聊一聊CoreMark。 一、EEMBC协会 在讲CoreMark之前,…

性能测试之cpu的性能诊断

一,CPU基本知识 测试中CPU诊断是重要的性能指标, CPU是代码打交道最多的硬件之一,要想一个CPU工作就需要提供一些指令和数据,一般放在内存中,其中指令一般都是由代码编译而来,数据也是代码中需用到的&#…

性能测试之cpu监控的结论

us,ni高, 说明用户态进程占用了较多的 topCPU,所以应该着重排查进程的性能问题。 应用程序的bug需要修复优化 kill掉无关进程, 或者nginx进程分配多核cpu这种设置,或者将进程绑定到cpu,避免进程在多cpu上切换&#xff…

SpecCPU2017 测试cpu性能

【转载】 SpecCPU介绍见: https://blog.csdn.net/qq_36287943/article/details/103601539 官网:https://spec.org/ 1、SpecCPU2017是一套CPU子系统测试工具,包括4大种类套件共43个基准测试。4大种类套件如下: 整数型:…

性能测试从零开始落地实施全过程指南之性能测试计划怎么写?

目录 前言 一、测试背景 二、测试目的 三、测试范围 四、术语约定 五、环境说明 六、需求分析 七、测试策略 八、准备工作 九、组织架构 十、风险分析 十一、交付清单 十二、阶段进度 前言 最近有些同学找我咨询关于性能测试计划相关的问题,原因是他们…

【C++/嵌入式笔试面试八股】一、36.模板 | 容器

模板 80.C++模板是什么,你知道底层怎么实现的? C++模板是一种通用编程技术,它允许在编写程序时使用参数化类型和函数。模板可以用于定义类模板和函数模板,它们可以根据不同类型的参数生成不同的代码。使用模板可以提高代码的复用性和灵活性,因为它们允许编写通用代码来处…

Qt编写视频监控系统74-悬浮工具栏(半透明/上下左右位置/自定义按钮)

一、前言 在监控系统中一般在视频实时预览的时候,希望提供一个悬浮工具条,可以显示一些提示信息比如分辨率、码率、帧率,提供一堆快捷操作按钮,可以录像、抓拍、云台控制、关闭等操作,参考了国内很多监控厂商客户端软…