隨著云計算市場規(guī)模的快速增長,各云廠商基礎(chǔ)設(shè)施投入也不斷增加,但行業(yè)普遍存在資源利用率低的問題,在上述背景下,提升資源利用率已經(jīng)成為了一個重要的技術(shù)課題。
將業(yè)務(wù)區(qū)分優(yōu)先級混合部署(下文簡稱混部)是典型有效的資源利用率提升手段。業(yè)務(wù)可根據(jù)時延敏感性分為高優(yōu)先級業(yè)務(wù)和低優(yōu)先級業(yè)務(wù)。當高優(yōu)先級業(yè)務(wù)和低優(yōu)先級業(yè)務(wù)發(fā)生資源競爭時,需優(yōu)先保障高優(yōu)先級業(yè)務(wù)的資源供給。
業(yè)務(wù)混部的核心技術(shù)是資源隔離控制,主要涉及內(nèi)核態(tài)基礎(chǔ)資源隔離技術(shù)及用戶態(tài) QoS 控制技術(shù)。Skylark 是一種虛擬機混部場景下的 QoS 感知的資源調(diào)度器,由 openEuler Skylark 組件承載,在 Skylark 視角下,優(yōu)先級粒度為虛擬機級別,即給虛擬機新增高低優(yōu)先級屬性,以虛擬機為粒度進行資源的隔離和控制,在保障高優(yōu)先級虛擬機 QoS 前提下提升物理機資源利用率。內(nèi)核層提供了一些基礎(chǔ)資源干擾隔離機制,比如 CPU 調(diào)度硬優(yōu)先級機制以及 SMT(硬件超線程)干擾隔離機制等。此外集群管理系統(tǒng)軟件 OpenStack 也需要感知虛擬機優(yōu)先級,設(shè)計實現(xiàn)一套混部資源模型。
虛擬機混部由 openEuler 社區(qū) OpenStack SIG、Virt SIG 以及 Kernel SIG 聯(lián)合開發(fā)。本文主要介紹 Skylark 組件的功耗管理技術(shù)。
為什么需要管理功耗
隨著各種混部方案的提出,服務(wù)器利用率有了明顯的提升。但是平均利用率的提高伴隨著的是瞬時利用率沖到 100%的概率大幅增加。服務(wù)器一般是以睿頻頻率運行,當 CPU 以滿負荷運行一段時間后,功耗的持續(xù)增加會大幅超過 TDP 觸發(fā) CPU 降頻。由于服務(wù)器是以整顆 CPU 供電,所以同一顆 CPU 上的所有 core 將會同時降頻,將會影響該 CPU 上運行的所有虛擬機對應(yīng)的客戶業(yè)務(wù) QoS。當利用率降低后,功耗也降低到一定值時,頻率將再次升高到睿頻。因此,高的資源利用率會間接導(dǎo)致 CPU QoS 下降,在虛擬機混部后需要在提高資源利用率的同時保證 CPU QoS 或者說客戶業(yè)務(wù)不受到影響。
本文詳細介紹并分享了功耗相關(guān)的基礎(chǔ)概念以及虛擬機混部技術(shù)中功耗管理的技術(shù)細節(jié)。
CPU 功耗來源
CPU 的功耗主要是由晶體管工作產(chǎn)生,其功耗主要分為開關(guān)功耗、短路功耗和漏電功耗三類。下圖為 CMOS 反向示意圖。
其中,開關(guān)功耗主要是電容的充放電。例如當輸入低電平時,輸出端負載電容會進行一次充電。當輸入變成高電平時,電容中儲存的電能會以熱量的形式被釋放。當 CPU 中幾十億個晶體管同時釋放時,將會產(chǎn)生大量的熱能。短路功耗則是 P 管和 N 管短路時產(chǎn)生的功耗。漏電功耗是 CMOS 管不能嚴格關(guān)閉時發(fā)生漏電所產(chǎn)生的功耗,與制程和溫度有關(guān)。
CPU 功耗關(guān)系公式:
公式中,C 代表電容率(Capacitance),是個常數(shù),和 CPU 的工藝相關(guān),在 CPU 出廠時確定。P 是功耗(Power),F(xiàn) 是 CPU 運行的頻率(Frequency),V 是電壓(Voltage)??梢钥闯?CPU 的功耗和 CPU 運行的電壓以及運行的頻率成正比。而其中,電壓 V 和頻率有一定的對應(yīng)關(guān)系,這是因為當 CPU 的場效應(yīng)管進行一次充放電需要一定時間,只有充放電完成后采樣才能保證信號的完整性。電壓越高,充電的時間越短,即翻轉(zhuǎn)的頻率就越大。
TDP 是什么
TDP(Thermal Design Power)即熱設(shè)計功耗,簡稱熱功耗。它是用來指示 CPU 或者 GPU 在滿負荷運行時,散熱器需要達到的散熱熱量。根據(jù)能量守恒原理,CPU 運行需要輸入能量,即電源的功率。輸入的電流經(jīng)過電容產(chǎn)生熱量,以熱能以及其他形式的能量散發(fā)出來,這些熱能如果沒有耗散掉,那么 CPU 的溫度則會越來越高,影響 CPU 的運行,TDP 代表了按照 CPU 設(shè)計運行的溫度范圍內(nèi)需要耗散的熱能,是散熱系統(tǒng)的重要參考指標。TDP 越大,表示 CPU 在滿負荷工作產(chǎn)生的熱量就越大。
隨著睿頻 2.0 技術(shù)引入,TDP 已經(jīng)不是 CPU 能夠排除的最大熱量了。在睿頻 2.0 中,引入了 PL1、PL2、PL3、PL4、和 Tau。
PL1 是 CPU 運行在默認主頻不含睿頻和 AVX 的功耗,大多數(shù)情況等于 TDP。PL2 是 CPU 可以達到超過 TDP 工作的最大功率限制??梢钥闯鲈?Tau 時間內(nèi) CPU 是可以超過 TDP 閾值運行的。PL3/PL4 一般廠家不設(shè)置,這里略過。Tau 是 CPU 能在 PL2 運行的最長時間。
在實際生產(chǎn)中,由于需要考慮到各種冗余以及生產(chǎn)安全,服務(wù)器并不能一直在最高功率下運行,而且為了保護 CPU,甚至?xí)O(shè)置"功耗墻",當功耗大于一定閾值時,CPU 會自動調(diào)用調(diào)頻接口通過降低 CPU 的頻率來降低功耗。當功耗降低,CPU 溫度回復(fù)正常時,CPU 頻率會逐漸回復(fù)到原先頻率。
混部功耗管理技術(shù)
在 Skylark 虛擬機混部方案中,我們有數(shù)據(jù)采集,QoS 實時分析,QoS 實時控制,三個核心模塊。在這三個模塊中,通過以下算法實現(xiàn)功耗管理:
「功耗相關(guān)數(shù)據(jù)采集」:根據(jù) host 上的 topo 關(guān)系,通過 MSR 寄存器,準確采集計算 CPU 每個核的頻率,以及每個 package 的功耗。
「功耗及利用率實時分析」:在每個定時周期中,根據(jù)設(shè)定的 TDP 閾值,標記功耗熱點 package,以及降頻 CPU 核,對降頻核上運行的虛擬機 CPU 利用率進行排序。由于我們要盡量保證高優(yōu)先級虛擬機的 QoS,所以利用率最高的若干個低優(yōu)先級虛擬機將被放入 QoS 調(diào)整隊列。
「QoS 實時控制」:在每個 QoS 調(diào)整周期,根據(jù) CPU 核狀態(tài),功耗熱點 package,限制或恢復(fù) QoS 調(diào)整隊列中虛擬機 vCPU 的 CPU 帶寬,通過降低 CPU 帶寬,將減小降頻核的 CPU 利用率,來達到降低功耗的目的。
總結(jié)
在使用了高低優(yōu)先級虛擬機混部方案之后,平均資源利用率的提高對應(yīng)著 QoS 降低的風(fēng)險也隨之增加。在 CPU 突發(fā)滿負載運行時,可能會因功耗升高觸發(fā)降頻而導(dǎo)致 CPU QoS 下降。我們在 Skylark 中提出了功耗管理技術(shù),通過調(diào)整熱點低優(yōu)先級虛擬機 vCPU 的 CPU 帶寬來間接調(diào)整功耗,保障 CPU QoS。
審核編輯:湯梓紅
-
cpu
+關(guān)注
關(guān)注
68文章
10908瀏覽量
213109 -
功耗
+關(guān)注
關(guān)注
1文章
828瀏覽量
32097 -
虛擬機
+關(guān)注
關(guān)注
1文章
949瀏覽量
28454 -
功耗管理
+關(guān)注
關(guān)注
0文章
8瀏覽量
7192 -
openEuler
+關(guān)注
關(guān)注
2文章
319瀏覽量
5946
原文標題:openEuler資源利用率提升之道 05:虛機混部介紹與功耗管理技術(shù)
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論