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

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

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


文章目录

  • 性能测试系统常用监控- -CPU
  • 前言
  • 一、常用概念
  • 二、性能指标
  • 三、性能分析
  • 四、调优方法
  • 五、常用分析
    • 5.1 top命令解析
    • 5.2分析思路


前言

在性能测试过程中CPU负载状态是重要监控指标项,它综合反应了系统的负载情况,根据监控的各指标项可以对系统或应用进一步分析调优。


一、常用概念

  • 架构:x86(intel、AMD、海光等)、MIPS(龙芯)、ARM(飞腾、麒麟)、SW(申威),同等架构和工艺情况下,核心数越多,扩展性越好;主频越高,性能越好
    说明:一般情况下x86性能 > ARM性能 > MIPS性能,核心数越多,支撑的并发连接越多,吞吐量越大
  • NUMA
    NUMA(Non-Uniform Memory Access)非一致性内存访问
    基本特征:
    1、具有多个CPU模块,每个CPU模块由多个CPU组成,并且具有独立的本地内存,I/O槽口等。节点(模块)之间可以通过互联模块(Crossbar Switch)进行连接和信息交换,因此每个cpu可以访问整个系统的内存。减少跨核访问、跨处理器竞争冲突。
    2、访问本地资源(本地内存、I/O槽口)的速度远远高于访问远地资源(其他node的资源)的速度,但是同样存在问题就是多个node 之间的资源交互非常慢,当cpu增多的情况下,性能提升的幅度并不是很高,无法实现性能的现象增加。
    在这里插入图片描述
  • SMP
    SMP(Symmetric Multi-processing)对称多处理器
    基本特征:
    1、 服务器中多个cpu对策工作,无主次,各cpu共享相同的物理内存,每个cpu访问内存任何地址所需时间相同,也被称为一致性内存访问(UMA)。
    2、系统中所有资源 (CPU 、内存、 I/O 等 ) 都是共享的。也正是由于这种特征,导致了 SMP 服务器的主要问题,那就是它的扩展能力非常有限。对于 SMP 服务器而言,每一个共享的环节都可能造成 SMP 服务器扩展时的瓶颈,而最受限制的则是内存。
    在这里插入图片描述
  • 绑核
    设置进程的处理器亲和性,可以将进程绑定到特定的一个或多个CPU上去执行,而不允许将进程调度到其他cpu上,减少切换(软中断)从而提高性能。
taskset -pc cpulist pid

在这里插入图片描述
说明:fffff:表示进程可以在host上任何cpu运行

二、性能指标

CPU使用率:用户CPU系统CPU、IOWAIT、软中断硬中断、窃取CPU、客户CPU
上下文切换:自愿上下文切换、非自愿上下文切换
平均负载
CPU缓存命中率

三、性能分析

工具或命令:top、ps、vmwait、mpstat、sar、piestat、strace、perf、execsnoop、htop、atop

模块类型度量方法衡量标准
CPU使用情况1.vmstat统计1-id计数,”%util”
2.sar –u统计1-%idle计数,”%util”
3.dstat统计1-idl计数
4.mpstat –P ALL统计1-%idle计数
5.ps统计cpu计数
注意>=50%
告警>=70%
严重>=90%
CPU满载1.vmstat的r计数 >CPU逻辑颗数
2.sar –q,”runq-sz” >CPU逻辑颗数
3.dstat –p,”run” >CPU逻辑颗数
运行队列大于1时,证明已经有一定负载,不过计数也不绝对,需进一步分析其他资源情况来判断CPU是否已经满载
CPU错误通过perf工具捕获处理器错误信息

四、调优方法

CPU绑定、进程CPU资源限制、中断负载均衡、CPU缓存、NUMA优化

五、常用分析

5.1 top命令解析

在这里插入图片描述
Load average:24.23, 8.27, 3.57 #过去1、5、15分钟系统负载,分析负载趋势:是否增加,稳固,降低等。
cpu使用率=100% - %id

指标项描述
%cpucpu使用率,实际数值可以超过100%,最大值为100N,N为CPU核心个数
us用户态cpu占用率
sy系统内核态cpu占用率
idcpu空闲率
wacpu等待输入输出占比
hi硬中断占比
si软中断占比
Mem total物理内存总量
Mem used使用的物理内存总量
Mem free空闲内存总量
Mem buff/cache用作内核缓存的内存量/缓冲区总量
Swap total使用的交换区总量
Swap used空闲交换区总量

tips
top命令后按d,修改打印间隔,W保存设置,下次进入也生效
top命令后按f,进入列配置,d选中添加或移除,W保存设置,下次进入也生效
top命令后按1,查看各颗cpu利用详情
重定向输出:top –b –d 1 –n 3 > top.log #-b:对齐输出,-d:延迟间隔,-n:迭代次数。(只显示前10行: top -b -d 1 -n 3 |grep ^top -A 10)

说明:大量网络吞吐量会导致占用CPU的资源增大,大量的CPU开销会尝试更多的内存使用

  • 虚拟内存
    当系统的物理内存不够用时,需要将物理内存中一部分空间释放出来,以供当前运行程序使用。被释放的空间可能来自于很长时间没有操作的程序,被释放用的程序被临时保存到虚拟内存空间中,等程序需要运行时,再从虚拟内存中恢复保存的数据到物理内存中。系统总是在物理内存不够时,才进行内存之间的交换。

  • 软中断
    软中断优先级低于硬中断,软中断消耗的cpu周期相对比硬中断要多。负责将包进行各种处理,完成从驱动层、到网络协议栈,最终把处理出来的数据放到socker的接收buffer中。

5.2分析思路

  • %usr:用户态消耗时间,如果比较大;说明用户程序本身有CPU瓶颈,需要优化程序本身。
  • %sys:系统内核消耗时间,如果比较大;说明系统调用函数花费时间很多,系统调用有CPU瓶颈,可能是程序非常多次调用系统内核函数导致,需要优化代码。
  • %idle:空闲cpu,如果较大,则CPU不是瓶颈。


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

相关文章

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-悬浮工具栏(半透明/上下左右位置/自定义按钮)

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

MySQL定时备份并清理

日常运维会遇到数据库备份的场景或情况,使用以下脚本解决数据库备份问题 建议在没有备份场景下也做好数据备份 #!/bin/bash #存放目录 source /etc/profileBackupDir/home/azt/mysqlbak #数据库库名 DataBaseNamedzqz #日期命名 DateTagdate %Y%m%d #sql脚本名字 s…