背景
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的核數注
責任編輯:gt
-
cpu
+關注
關注
68文章
10855瀏覽量
211594 -
測量
+關注
關注
10文章
4850瀏覽量
111243 -
線程
+關注
關注
0文章
504瀏覽量
19675
發布評論請先 登錄
相關推薦
評論