性能测试,CPU使用率CPU负载率理解

前言

在做性能测试过程中,我们常说需要关注的主要两个性能指标方向为时间性能和空间性能。服务器CPU使用率以及平均负载率是其中需要重点监控的节点之一,此处用通俗的例子来说明CPU使用率以及CPU平均负载率

CPU使用率

在服务器使用top命令,我们可以打开实时服务器资源用情况如下图所示。
性能测试,CPU使用率CPU负载率理解_第1张图片

服务器CPU使用率
  • 我们可以看到此时CPU使用率占用百分比,图中为12.1%。对于这个CPU使用率可能部分对于计算机硬件原理不了解的同学来说会往空间方面去想象使用率(类似于内存使用率)而进入误区。
  • CPU的使用率是以时间维度来计算的CPU使用率,即CPU时间片使用率
  • 我们来用一个例子来说明CPU使用率的含义:假设一个村有一只牛我们把这一只牛看作一个逻辑CPU,全村耕地都需要用到牛,一只牛在一个时间段内只能在一家耕地。没有人用牛的时候使用率就低反之则使用率高
进程CPU使用率
  • 从上面的图我们可以看到PID为11352的进程CPU使用率298.3%,可能有的同学会认为这个使用率是不是说CPU使用率已经满了已经爆掉了,其实不是这样的哈
  • 前面Linux kernel cgroup篇我们说过CPU是可压榨资源,进程CPU使用率的百分比是以一个逻辑CPU为基数,298%说明CPU使用的时间片占用满了2.98个逻辑CPU的时间片。

CPU平均负载

同样使用top命令,我们可以看到第一行有“load average”平均负载率
在这里插入图片描述

  • CPU负载率标准解释:单位时间内,系统中处于可运行状态和不可中断状态的平均进程数。
  • 从标准解释我们可以通俗的讲就是正在CPU运行和等待CPU的进程总数,进程数量除以逻辑CPU个数就是我们的CPU平均负载
    老规矩,我们还是以牛为例子举例:假设一个村4只牛对应看作我们的4个逻辑CPU,有20家人要用牛耕地,那么我们可以可以认为这20家人就是我们上面说得可运行状态不可中断进程数。那么此时的平均负载就是5

关联

  • 上面我们理解了CPU使用率以及CPU平均负载率的概念和他们统计的维度区别,那么他们之间有没有什么必然联系,答案是没有必然联系。
  • 在I/O密集型业务的性能测试过程中会表现出CPU平均负载率较高而CPU使用率较低
  • 在CPU密集型业务的性能测试过程中会表现出CPU使用率较高而CPU平均负载率较低

你可能感兴趣的:(性能测试,nginx,linux,运维)