后台CPU作为一种资源,其主要目的是完成计算任务。
在完成计算任务的能力和CPU资源的消耗之间存在可量化的限制。
这为我们提供了一种通过测量CPU完成计算任务的能力来测量CPU资源消耗的方法。
度量的维度让我们首先了解CPU提供的资源,或者我们可以将CPU资源分解为可以用于进一步度量的维度。
上图和文本取自ETSIGSNFV-TST008,该文件提供了可以针对物理CPU注1进行测量的几种资源尺寸以及它们之间的对应关系。
注1:如果有多个物理CPU,则可以在核心层之上引入Socket层(从视觉上可以理解为CPU的套接字)。
物理CPU对应于一个Socket,它代表实际插入主板的物理CPU。
当然,也可以将多个CPU的内核一起考虑。
顶层基于CPU内核作为资源测量对象。
早期,CPU只有一个内核,一个内核可以同时处理一个线程。
后来,为了提高CPU的性能,我开始在一个CPU中放置两个内核和四个内核,以便一个CPU可以同时处理2个线程/ 4个线程,并且在打开SMT / HT时,当时间分配为码片时,CPU可以“同时”分配芯片。
处理更多线程。
例如,以下系统信息显示:CPU的数量为1,其中有6个内核,并且启用了HT。
第二层是一个核心,将处理时间从时间维度上划分为滴答间隔(其长度称为Jiffy),滴答间隔是测量的对象。
每个刻度间隔具有不同的上下文:例如,系统状态,用户状态,空闲状态等。
在测量周期中,可以计算与不同状态相对应的时间长度。
可以根据流程注释2划分第三层(用于用户模式中的滴答间隔)。
通过为不同的线程分配时间片,可以同时(在一个时间范围内)处理多个线程。
在此级别上,将过程使用的计算资源作为对象进行测量。
注2:·流程:流程是资源分配的基本单位; ·线程:CPU调度和分配的基本单位。
线程是流程的实体。
一个进程包含一个或多个线程;同一进程中的多个线程可以并发执行。
程序/应用程序具有至少一个进程,并且一个进程具有至少一个线程。
对于计算资源使用量的测量,尽管可以将计算资源划分为3个维度(或存在3种计算资源范围),但是CPU资源使用量的测量方法是相同的。
简单的总结是:从时间维度上,测量一个测量周期内对计算资源的占用。
具体地,以ESTIGSNFV-TST008为例,定义了两个测量量:处理器使用率:根据某个资源维数/计算资源范围的划分,在一个测量周期内,对一个或多个计算资源执行总时间。
在特定情况下。
处理器利用率:处理器利用率与测量周期(时间长度)的比率。
评估CPU资源的消耗那么,您是否可以直接使用处理器的使用率来衡量CPU资源的消耗?让我们首先看一个简单的示例:两个进程使用时钟频率不同的CPU,并且在相同的测量周期内,两个进程中每个进程的处理器使用率为200ns。
尽管它们占用各自的计算资源相同的时间(处理器使用率),但我们遵循常识,直观的感觉是,由于CPU频率不同,两个进程消耗的计算资源也不同。
。
如果要进一步分析这种差异,则需要了解与CPU工作有关的几个周期:1. CPU时钟周期:这是CPU执行活动的最小时间单位,它等于CPU频率的倒数。
这是衡量CPU性能的重要指标之一。
2.机器周期:这是CPU执行基本操作所需的时间。
一个机器周期的长度是几个CPU时钟周期。
3.指令周期:这是CPU执行一条指令所需的时间。
CPU执行一条指令,通常将其分为几个阶段,每个阶段完成一个任务。
这里的任务指的是前面提到的基本操作。
因此,指令周期将包含一个或多个机器周期。
假设主频率不同的CPU执行完全相同的指令,则由于时钟周期不同,指令周期的长度也将不同