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