博客
关于我
性能测试必备知识(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/

    你可能感兴趣的文章
    npm安装 出现 npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! 解决方法
    查看>>
    npm安装crypto-js 如何安装crypto-js, python爬虫安装加解密插件 找不到模块crypto-js python报错解决丢失crypto-js模块
    查看>>
    npm安装教程
    查看>>
    npm报错Cannot find module ‘webpack‘ Require stack
    查看>>
    npm报错Failed at the node-sass@4.14.1 postinstall script
    查看>>
    npm报错fatal: Could not read from remote repository
    查看>>
    npm报错File to import not found or unreadable: @/assets/styles/global.scss.
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
    查看>>
    npm版本过高问题
    查看>>
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>
    npm的安装和更新---npm工作笔记002
    查看>>
    npm的常用配置项---npm工作笔记004
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    npm编译报错You may need an additional loader to handle the result of these loaders
    查看>>
    npm设置淘宝镜像、升级等
    查看>>
    npm设置源地址,npm官方地址
    查看>>
    npm设置镜像如淘宝:http://npm.taobao.org/
    查看>>
    npm配置安装最新淘宝镜像,旧镜像会errror
    查看>>
    NPM酷库052:sax,按流解析XML
    查看>>