博客
关于我
性能测试必备知识(7)- 深入理解“CPU 使用率”
阅读量:442 次
发布时间:2019-03-06

本文共 1337 字,大约阅读时间需要 4 分钟。

做性能测试的必备知识系列

作为性能测试从业者,熟悉系统资源的监控与分析是必不可少的。下面我将从CPU使用率这一核心指标入手,帮助大家深入理解其监控与分析方法。

回顾

在性能测试过程中,CPU使用率是衡量系统性能的重要指标之一。它反映了单位时间内CPU的工作负载情况。

灵魂拷问

在实际监控系统性能时,选择哪种指标更能准确反映系统的CPU性能?有没有一些常用的CPU性能评估方法?

答案

CPU使用率是衡量系统性能的核心指标之一,常用的有CPU空闲率和平均负载等。然而,CPU使用率不仅要考虑平均负载,还需要关注上下文切换的频率。上下文切换指的是操作系统将一个任务切换到另一个任务的过程,这会导致CPU资源被浪费。

CPU使用率

什么是CPU使用率?

CPU使用率是衡量单位时间内CPU工作负载的百分比。它反映了系统中各个任务占用CPU的时间比例。通过监控CPU使用率,可以快速判断系统性能的状态。

CPU节拍率

Linux系统的CPU节拍率(HZ)决定了时间中断的频率。内核通过设置不同的HZ值(如100、250、1000),实现对时间的精确划分。Jiffies是用来记录开机以来的时间中断次数的计数器。

用户空间节拍率

为了方便用户空间程序访问,内核提供了USER_HZ(用户空间节拍率),其固定值为100(1/100秒)。这使得用户程序无需关心内核设置的具体HZ值。

系统CPU数据来源

Linux通过/proc虚拟文件系统向用户提供系统内部状态信息。/proc/stat文件提供了详细的CPU和任务统计数据。

读取CPU数据

cat /proc/stat | grep ^cpu

解读CPU数据

从左到右的11列数据分别表示:

  • CPU编号:累计使用时间。
  • user(us):用户态CPU时间,不包括nice值的用户任务。
  • nice(ni):低优先级用户态CPU时间。
  • system(sys):内核态CPU时间。
  • idle(id):空闲时间。
  • iowait(wa):等待I/O操作完成的CPU时间。
  • irq(hi):处理硬中断的CPU时间。
  • softirq(si):处理软中断的CPU时间。
  • steal(st):虚拟机被其他虚拟机占用的CPU时间。
  • guest(gn):运行虚拟化操作系统的CPU时间。
  • guest_nice(gn):低优先级运行虚拟化操作系统的CPU时间。
  • CPU使用率计算

    CPU使用率是指除空闲时间外占总CPU时间的百分比。

    CPU使用率的时间窗口

    通过/proc/stat获取的CPU数据反映的是开机以来的累计值,直接计算平均值通常没有参考价值。性能分析工具通常采取间隔一段时间(如3秒)的数据进行差值计算,得出该时间段内的平均CPU使用率。

    性能工具的计算方法

    性能工具采取间隔固定时间(如3秒)采集数据,计算这段时间内的CPU使用率变化率。这种方法能更准确地反映系统的短期性能波动。

    总结

    • 不要自己计算CPU使用率,直接使用性能工具获取数据。
    • 性能工具显示的是间隔时间内的平均CPU使用率,需根据具体工具说明设置间隔时间。
    • 关注短期波动是评估系统性能的重要手段。

    通过上述方法,你可以更全面地了解和监控系统CPU性能,做好性能测试的准备工作。

    转载地址:http://uzufz.baihongyu.com/

    你可能感兴趣的文章
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>
    Openlayers实战:modifystart、modifyend互动示例
    查看>>
    Openlayers实战:判断共享单车是否在电子围栏内
    查看>>
    Openlayers实战:绘制图形,导出geojson文件
    查看>>
    Openlayers实战:绘制图形,导出KML文件
    查看>>
    Openlayers实战:绘制多边形,导出CSV文件
    查看>>
    Openlayers实战:绘制带箭头的线
    查看>>
    Openlayers实战:输入WKT数据,输出GML、Polyline、GeoJSON格式数据
    查看>>
    Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
    查看>>
    Openlayers高级交互(11/20):显示带箭头的线段轨迹,箭头居中
    查看>>
    Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
    查看>>
    Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    Openlayers高级交互(2/20):清除所有图层的有效方法
    查看>>
    Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    查看>>
    Openlayers高级交互(6/20):绘制某点,判断它是否在一个电子围栏内
    查看>>
    Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频
    查看>>
    Openlayers高级交互(8/20):选取feature,平移feature
    查看>>