其他分享
首页 > 其他分享> > 性能测试必备知识(7)- 深入理解“CPU 使用率”

性能测试必备知识(7)- 深入理解“CPU 使用率”

作者:互联网

做性能测试的必备知识系列,可以看下面链接的文章哦

https://www.cnblogs.com/poloyy/category/1806772.html

 

回顾

CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示

 

灵魂拷问

最常用什么指标来描述系统的 CPU 性能?

 

回答

CPU 使用率,而不是平均负载,CPU 上下文切换

 

CPU 使用率

前言

前面说过,Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,在通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉

 

了解节拍率

grep 'CONFIG_HZ=' /boot/config-$(uname -r)

 

了解用户空间节拍率

 

系统 CPU 数据来源(了解)

只查看 CPU 的数据

cat /proc/stat | grep ^cpu

 

结果分析

从左往右一共 11 列哦

  1. CPU 编号:第一行是 CPU 的累加
  2. user(us):用户态 CPU 的时间,不包括下面的 nice 时间,但包括了 guest 时间
  3. nice(ni):低优先级用户态 CPU 的时间,就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间;注意 nice 可取值范围是 -20 到 19,数值越大,优先级反而越低
  4. system(sys):内核态 CPU 的时间
  5. idle(id):空闲时间,它不包括等待 I/O 的时间(iowait)
  6. iowait(wa):等待 I/O 的 CPU 时间
  7. irq(hi):处理硬中断的 CPU 时间
  8. softirq(si):处理软中断的 CPU 时间
  9. steal(st):当系统运行在虚拟机中的时间,被其他虚拟机占用的 CPU 时间
  10. guest:通过虚拟化运行其他操作系统的时间,就是运行虚拟机的 CPU 时间
  11. guest_nice(gnice):以低优先级运行虚拟机的时间

 

CPU 使用率计算公式(了解)

除了空闲时间外的其他时间占总 CPU 时间的百分比

 

灵魂拷问

 /proc/stat 的数据,算的是什么时间段的 CPU 使用率?

 

回答

这是开机以来的节拍数累加值,所以直接算出来的,是开机以来的平均 CPU 使用率,一般没啥参考价值

 

性能工具所看到的 CPU 使用率的实际计算方法

为了计算 CPU 使用率,性能工具一般都会取间隔一段时间(比如 3 秒)的两次值,作差后,再计算出这段时间内的平均 CPU 使用率

 

总结下

 

 

标签:HZ,节拍,必备,时间,内核,使用率,CPU
来源: https://blog.51cto.com/u_12020737/2853901