性能测试系统常用监控- -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

指标项 描述
%cpu cpu使用率,实际数值可以超过100%,最大值为100N,N为CPU核心个数
us 用户态cpu占用率
sy 系统内核态cpu占用率
id cpu空闲率
wa cpu等待输入输出占比
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不是瓶颈。

【性能测试】系统常用监控- -CPU相关推荐

  1. 银行业务交易应用系统常用监控技术浅析

    概述 随着现代信息系统越来越庞大,机器数量呈现指数级增长,信息系统运维对平台化服务能力要求越来越高,建立有效的监控体系准确及时发现系统运行中出现的问题,对于保障应用系统稳定运行具有重要意义. 为提升生 ...

  2. 性能测试监控——CPU

    性能测试监控--CPU 为了全面详细的分析系统运行状态,发现隐藏的性能瓶颈.性能测试期间,全面监视CPU运行状态是很有必要的. 本文侧重分析性能测试期间需要监控的CPU运行状态指标,对比相关查询命令的 ...

  3. linux系统中的基础监控(硬盘,内存,系统负载,CPU,网络等)

    Linux系统常见日常监控 系统信息 查看 CentOS 版本号:cat /etc/redhat-release 综合监控 nmon 系统负载 命令:w(判断整体瓶颈) 12:04:52 up 16 ...

  4. Linux-系统监控系统常用命令

    系统监控   proc文件系统 proc文件系统是一种无存储的文件系统,当读其中的文件时,其内容动态生成,当写文件时,文件所关联的写函数被调用.内核部件可以通过该文件系统向用户空间提供接口来提供查询信 ...

  5. shell脚本监控系统负载、CPU和内存使用情况

    #一.编写系统负载监控的脚本文件 #!/bin/bash ####################################################################### ...

  6. java cpu监控,java系统监控CPU 磁盘

    java系统监控CPU 磁盘 import java.io.*; /** * linux 下cpu 内存 磁盘 jvm的使用监控 * @author avery_leo * */ public cla ...

  7. 性能测试培训: 监控CPU之python

    性能测试培训: 监控CPU之python 作为一名测试开发工程师,开发脚本是为了测试服务的,我们在手里没有性能监控工具的情况下,我们会自己来进行开发脚本完成监控任务.下面是python监控cpu '' ...

  8. java 监控系统cpu,java系统监控CPU 磁盘

    java系统监控CPU 磁盘 import java.io.*; /** * linux 下cpu 内存 磁盘 jvm的使用监控 * @author avery_leo * */ public cla ...

  9. 配置及使用Zabbix监控系统:监控CPU 监控内存 监控进程 监控网络流量 监控硬盘

    3.1 问题 沿用练习一,使用Zabbix监控平台监控Linux服务器,实现以下目标: 监控CPU 监控内存 监控进程 监控网络流量 监控硬盘 3.2 方案 通过Zabbix监控平台,添加被监控zab ...

最新文章

  1. 嵌入式入门要知道的五个小窍门-心得
  2. javascript 网页设计 怎么在同一位置显示几张不同的图片(图片自动变换)
  3. netty获取玩家chanel_Netty中的Channel
  4. linux 格式化u盘_【Ventoy】一个U盘,启动多个系统
  5. 可变字典 NSMutableDictionary
  6. STM32学习第三课:STM32 c语言学习基础3(内存操作、指针、结构指针)
  7. java文件处理:文件流、上传、下载
  8. 存储服务器之间的传输速度与服务器内部读写速度_3000MB/s读写带来的PC体验升级,东芝RD500固态硬盘评测...
  9. scm 软件配置管理
  10. 计算机二级python经典真题
  11. [nssl1320][jzoj cz 2108] 买装备 {dfs}
  12. HTML前端特效集合
  13. 中兴新支点操作系统_中兴新支点桌面操作系统,一个不错的国产linux系统
  14. java合并图片合成多张横向或竖向
  15. 63.android 简单的下拉刷新动画水滴效果
  16. html中tr中加判断换行符,深入解析HTML的table表格标签与相关的换行问题
  17. angular: 代码正确的情况下npm不断提示 TS2307: Cannot find module XXX , TS2305: Module XXX has no exported member
  18. 各大搜索引擎网站登录入口大全
  19. 怎么在Word中固定表头
  20. android菜单_Android菜单简介

热门文章

  1. STM32 电机教程 9 - BLDC电机基础
  2. 联想zuk z2刷recovery教程(Fastboot一键线刷)
  3. vo2dto使用指南
  4. 免费超大容量相册空间 - 一刻相册
  5. 大数据平台搭建 | Hive
  6. 一个十分好用的桌面快速预览工具--QuickLook
  7. ros借助讯飞sdk实现问答机器人解决讯飞语音sdk11212erro
  8. python dcf估值_Python 常用模块
  9. 自旋锁与互斥锁的对比、手工实现自旋锁
  10. ListControl控件绘制网格线