背景
cpu作为一种资源,它的主要用途就是用来完成运算任务。完成运算任务的能力与cpu资源消耗之间存在着可量化的制约关系,这给我们提供了一种途径,通过衡量cpu完成运算任务的能力来衡量cpu资源的消耗情况。
测量的维度
我们首先了解一下 cpu 都提供了哪些资源,或者说,我们可以把 cpu资源分解为哪些可以用来进一步进行测量的维度。
上面的图和文字摘自etsi gs nfv-tst 008,呈现的是一个物理cpu注1能够被测量的几个资源维度和他们之间的对应关系。
注1:如果有多颗物理的cpu,可以在核(core)这一层之上,再引入一层 socket(可以形象地理解为 cpu的插槽)。一颗物理的cpu 对应一个 socket,代表一颗实实在在插在主板上的物理 cpu。当然,也可以把多颗 cpu 的核放在一起来考虑。
最上面一层是以cpu的核作为资源衡量的对象。早先cpu只有一个核,一个核能同时处理一个线程。后来为了提高cpu 的性能,开始在一个 cpu 里放置两个核,四个核,这样一个 cpu 就可以同时处理2个线程/4个线程,而在开启了 smt/ht 的情况下,通过分配时间片,一个 cpu 可以“同时”处理更多的线程。
比如下面这个系统信息显示:cpu 数量是 1,其中有 6 个核,并且启用了 ht。
第二层是针对一个核,从时间维度把处理时间划分为一个个tick interval(其时间长度称为 jiffy),以 tick interval 作为衡量的对象。每个 tick interval 有不同的上下文:例如系统态,用户态,空闲态等。在测量周期内,可以统计不同态所对应的时间长度。
第三层,针对处于用户态的tick intervals,可以再按照进程注 2再进行划分。通过为不同的线程分配时间片,实现在(在一个时间范围内)同时处理多线程。在这个层面上,以进程使用的计算资源为对象进行衡量。
注2:
·进程: 进程是资源分配的基本单位;
·线程:cpu调度和分配的基本单位。
·线程是进程的一个实体;一个进程包含一个或多个线程;同一个进程中的多个线程之间可以并发执行。
一个程序/应用至少有一个进程,一个进程至少有一个线程。
针对计算资源用量的测量
虽然计算资源可以划分为 3 种维度(或者说计算资源的 scope有 3 种),但是,对于 cpu 资源的使用情况的度量方法是相同的,简单概括就是:从时间维度,度量一个测量周期内计算资源的被占用情况。
具体来说,以esti gs nfv-tst 008为例,其中定义了两种测量量:
处理器的用量:按照某种资源维度/计算资源scope的划分,在一个测量周期内,在一个或多个计算资源上,执行特定上下文的指令所使用的总时间。
处理器的利用率:处理器的用量与测量周期(的时间长度)的比值。
评估cpu资源的消耗
那么,能不能直接用处理器的用量/利用率来衡量 cpu 资源的消耗情况呢?
我们先看一个简单的例子:
两个进程分别使用主频不同的cpu,并且在相同的测量周期内,两个进程各自的处理器用量都是200ns。
虽然他们对于各自的计算资源占用时间(处理器的用量)相同,但是我们按照常识,一个直观的感觉就是,由于cpu 的主频不同,这两个进程对计算资源的消耗程度应该是不一样的。
如果要进一步分析这种差异,需要了解几个与cpu工作相关的周期:
1.cpu时钟周期:是 cpu 进行活动的最小时间单位,等于cpu 主频的倒数。这是衡量 cpu 性能的重要指标之一。
2.机器周期:是 cpu 执行一项基本操作所需的时间。一个机器周期的长度为若干个 cpu时钟周期;
3.指令周期:是 cpu 执行一条指令所需的时间。cpu 执行一条指令,通常会将其分解为若干个阶段,每个阶段完成一项任务。这里的任务就是指前面所说的基本操作。所以,指令周期会包含一个或多个机器周期。
假设不同的主频的cpu 执行完全同样的一条指令,由于时钟周期不同,指令周期的长度就会不同:主频高的 cpu 所需的时间更少。
反过来再看前面的例子,可以推断出占用 cpu 时间长度相同的两个进程,使用高主频的cpu的进程其需要 cpu 完成的任务数量要多于另一个使用低主频 cpu 的进程。
类似的,一个多核的 cpu可以类比为多个单核的 cpu。如果可以使用的资源包含多个核,那么在处理的任务数量方面,也可以得到类似的结论。
当需要衡量一个进程对cpu资源的消耗时(例如,在利用资源利用率评价能效的计算过程中),评估某个进程(可能是vnf/vm/vc)到底让cpu做了多少事情,比单纯地考虑其占用cpu的时间长度更加准确。
因此,除了要使用时间维度的处理器用量/利用率之外,计算cpu 资源的消耗还要进一步考虑cpu 的时钟速度和核数:
cpu 资源的消耗 = 处理器的利用率*cpu的时钟频率*cpu的核数注
基于RJM8L003系列MCU的坐姿纠正(腰部)解决方案
Tesla 将会主动推送QQ音乐
正弦交流电路的基本概念和三要素介绍
SCARA机器人的发展史_SCARA机器人的未来
怎样借助智慧医疗来抵抗肺癌这个大问题
CPU提供了哪些资源,如何评估CPU资源的消耗
台湾大面积停电,蔡英文回应了个空气
英特尔将为LGA1700平台推出Bartlett Lake处理器
铝空气电池(Aluminium-air)
FRAM具有高速读写、高读写耐久性和低功耗等优势
我国制造的最大痛点是尚未完全建立制造文明
华为H1智能手机出货占比34%%,七成华为供应商业绩增长
关于继电器的识别方法及其应用电路介绍
漏电保护器电源开关需要安裝电气火灾监控系统吗
骁龙835+8G大运存,一加5、努比亚Z17等几款国产旗舰iPhone8都得怕了
分享几个传输线的应用实例
关于推动机器人的AI处理技术至边缘计算
划片机操作安全注意事项
PCB在热冲击可靠性测试期间最常见的故障点
小米MAX下架官网,小米MAX2要来?