隨著云計算市場規(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。當利用率降低后,功耗也降低到一定值時,頻率將再次升高到睿頻。因此,高的資源利用率會間接導致 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,甚至會設(shè)置"功耗墻",當功耗大于一定閾值時,CPU 會自動調(diào)用調(diào)頻接口通過降低 CPU 的頻率來降低功耗。當功耗降低,CPU 溫度回復正常時,CPU 頻率會逐漸回復到原先頻率。
混部功耗管理技術(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,限制或恢復 QoS 調(diào)整隊列中虛擬機 vCPU 的 CPU 帶寬,通過降低 CPU 帶寬,將減小降頻核的 CPU 利用率,來達到降低功耗的目的。
總結(jié)
在使用了高低優(yōu)先級虛擬機混部方案之后,平均資源利用率的提高對應(yīng)著 QoS 降低的風險也隨之增加。在 CPU 突發(fā)滿負載運行時,可能會因功耗升高觸發(fā)降頻而導致 CPU QoS 下降。我們在 Skylark 中提出了功耗管理技術(shù),通過調(diào)整熱點低優(yōu)先級虛擬機 vCPU 的 CPU 帶寬來間接調(diào)整功耗,保障 CPU QoS。
審核編輯:湯梓紅
-
cpu
+關(guān)注
關(guān)注
68文章
10904瀏覽量
213023 -
功耗
+關(guān)注
關(guān)注
1文章
828瀏覽量
32079 -
虛擬機
+關(guān)注
關(guān)注
1文章
940瀏覽量
28427 -
功耗管理
+關(guān)注
關(guān)注
0文章
8瀏覽量
7190 -
openEuler
+關(guān)注
關(guān)注
2文章
319瀏覽量
5939
原文標題:openEuler資源利用率提升之道 05:虛機混部介紹與功耗管理技術(shù)
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
一種提升存儲資源利用率的方法
![一種<b class='flag-5'>提升</b>存儲<b class='flag-5'>資源</b><b class='flag-5'>利用率</b>的方法](https://file1.elecfans.com/web2/M00/B1/8B/wKgZomVcEyOANwsDAAA1iQZb4rU700.png)
提升現(xiàn)網(wǎng)網(wǎng)絡(luò)資源的利用率和網(wǎng)絡(luò)承載能力的方法
openEuler 資源利用率提升之道 01:概論
openEuler資源利用率提升之道02:典型應(yīng)用下的效果
openEuler 資源利用率提升之道 03:rubik 混部引擎簡介
openEuler 資源利用率提升之道 04:CPU 搶占和 SMT 隔離控制
關(guān)于Swarm和Mesos資源利用率優(yōu)化實踐分析
![關(guān)于Swarm和Mesos<b class='flag-5'>資源</b><b class='flag-5'>利用率</b>優(yōu)化實踐分析](https://file.elecfans.com/web2/M00/49/F6/pYYBAGKhvH6ARQf-AABLFZ3PO4g380.png)
云虛擬機按需物理資源分配方法
![云<b class='flag-5'>虛擬機</b>按需物理<b class='flag-5'>資源</b>分配方法](https://file.elecfans.com/web2/M00/49/87/poYBAGKhwMOAT2qGAAAXC_na5jY191.jpg)
基于虛擬機負載高峰特征的虛擬機放置策略
基于自適應(yīng)虛擬機遷移的云資源調(diào)度及架構(gòu)
openEuler Summit 2021-云/虛擬化分論壇:業(yè)內(nèi)解決方案+虛擬機系統(tǒng)模擬
![<b class='flag-5'>openEuler</b> Summit 2021-云/<b class='flag-5'>虛擬</b>化分論壇:業(yè)內(nèi)解決方案+<b class='flag-5'>虛擬機</b>系統(tǒng)模擬](https://file.elecfans.com/web2/M00/1C/57/poYBAGGLaFGAEZF-AAWFS6ClrXY640.png)
openEuler資源利用率提升之道:虛擬機混部OpenStack調(diào)度
廣凌房產(chǎn)管理系統(tǒng)(一):土地資源管理,提高資產(chǎn)資源利用率
![廣凌房產(chǎn)<b class='flag-5'>管理</b>系統(tǒng)(一):土地<b class='flag-5'>資源管理</b>,提高資產(chǎn)<b class='flag-5'>資源</b><b class='flag-5'>利用率</b>](https://file.elecfans.com/web2/M00/4C/F8/pYYBAGKyaoSAXx-GAABxPfsrwFw293.png)
Docker與虛擬機的區(qū)別
hyper 內(nèi)存,Hyper內(nèi)存:如何監(jiān)控與優(yōu)化hyper-v虛擬機的內(nèi)存使用
![hyper 內(nèi)存,Hyper內(nèi)存:如何監(jiān)控與優(yōu)化hyper-v<b class='flag-5'>虛擬機</b>的內(nèi)存使用](https://file1.elecfans.com/web3/M00/06/FB/wKgZO2eRojaAedKRAAJ1cEnLmOg140.png)
評論