T級內(nèi)存,t級內(nèi)存需要什么主板-ESG跨境

T級內(nèi)存,t級內(nèi)存需要什么主板

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-07-05
點贊icon 0
查看icon 645

T級內(nèi)存,t級內(nèi)存需要什么主板T級內(nèi)存簡介:阿里云工程師李偉男和郭成在KVM Forum 2020上詳細介紹了阿里云KVM虛擬機創(chuàng)建及啟動時間優(yōu)化的具體技術(shù)實現(xiàn),本文根據(jù)其演講整理而成。對于云計算用戶來說,過長的KVM虛擬機創(chuàng)建及啟動時間非常影響體驗,特別是超大規(guī)格的KVM異構(gòu)虛擬機。以350G內(nèi)存為例,創(chuàng)建時間需要2......

T級內(nèi)存,t級內(nèi)存需要什么主板




T級內(nèi)存

簡介:阿里云工程師李偉男和郭成在KVM Forum 2020上詳細介紹了阿里云KVM虛擬機創(chuàng)建及啟動時間優(yōu)化的具體技術(shù)實現(xiàn),本文根據(jù)其演講整理而成。

對于云計算用戶來說,過長的KVM虛擬機創(chuàng)建及啟動時間非常影響體驗,特別是超大規(guī)格的KVM異構(gòu)虛擬機。以350G內(nèi)存為例,創(chuàng)建時間需要2分鐘,當(dāng)用戶此時創(chuàng)建虛擬機是用于快速恢復(fù)業(yè)務(wù)時,2分鐘的創(chuàng)建等待時間完全超出用戶的可忍受值。另外,對于云計算的后臺管控系統(tǒng)而言,過長的阻塞時間極大地影響了系統(tǒng)調(diào)度效率。

一直以來,阿里云異構(gòu)計算團隊在KVM性能優(yōu)化方面都有大量的投入,積淀了大量實戰(zhàn)經(jīng)驗。阿里云異構(gòu)計算團隊創(chuàng)新性地提出了一種顯著優(yōu)化帶有透傳(passthrough)設(shè)備的KVM虛擬機創(chuàng)建及啟動時間的方法,虛擬機的啟動時間不再隨著分配內(nèi)存的大小而顯著增加,即使虛擬機被分配了幾百G甚至更多的內(nèi)存,用戶感知的啟動時間依然沒有明顯增加。

在這套技術(shù)優(yōu)化方案下,對于350G內(nèi)存的虛擬機,創(chuàng)建及啟動時間可從原來的120秒以上降低到20秒以內(nèi),效率整整提升了6倍以上;對于T級內(nèi)存的虛擬機,預(yù)計創(chuàng)建效率可以提升10倍以上。

作為KVM社區(qū)最為重要和權(quán)威的大會,KVM Forum 2020有3個議題是與KVM虛擬機創(chuàng)建及啟動速度的優(yōu)化有關(guān),分別來自阿里巴巴、英特爾和滴滴,可見KVM社區(qū)及云計算業(yè)界對此問題的重視程度。阿里云工程師李偉男和郭成在KVM Forum 2020上詳細介紹了阿里云KVM虛擬機創(chuàng)建及啟動時間優(yōu)化的具體技術(shù)實現(xiàn),本文根據(jù)其演講整理而成。

1、發(fā)現(xiàn)問題:內(nèi)存越大、啟動越慢,DMA map執(zhí)行是耗時大戶

眾所周知,PCI設(shè)備透傳是KVM虛擬化應(yīng)用中一個非常重要的場景,而VFIO是當(dāng)前最為流行的PCI設(shè)備透傳解決方案,為了能夠在應(yīng)用層提供高效的DMA訪問,在啟用VFIO設(shè)備之前,需要將分配給虛擬機的所有內(nèi)存都鎖定并進行IOMMU頁表的創(chuàng)建。

這么做的原因在于,DMA訪問可能覆蓋整個虛擬機的內(nèi)存空間,并且DMA訪問的內(nèi)存不能被換出(swap)。所以,如果能夠在物理設(shè)備DMA訪問之前得知將要訪問的地址空間,就可以在運行中進行內(nèi)存鎖定(pin)及IOMMU頁表的創(chuàng)建。但目前并沒有一個簡單、高效的方法能夠完成這一操作。為了虛擬機及設(shè)備的高效運行,目前開源社區(qū)采取的辦法是在虛擬機創(chuàng)建時將所有分配給它的內(nèi)存進行鎖定并創(chuàng)建IOMMU頁表(DMA map)。

由于DMA map是一個相對比較耗時的操作,在虛擬機內(nèi)存相對較小時,總體耗時是可以接受的。但隨著虛擬化市場及技術(shù)的發(fā)展,越來越多的用戶開始使用超大規(guī)格的虛擬機,內(nèi)存資源已從4G增長到384G甚至更高,隨之帶來的DMA map時間消耗問題也日益突出。

圖1:虛擬機的創(chuàng)建及啟動時間與內(nèi)存大小關(guān)系

如圖1所示,以開源社區(qū)的KVM虛擬化組件及Ubuntu18.04虛擬機為例,在虛擬機內(nèi)存達到350G以上時,整個KVM系統(tǒng)的啟動時間將超過2分鐘,其中絕大部分時間都消耗在DMA map執(zhí)行操作中。在這2分鐘里,對于用戶來說虛擬機是一個黑盒,用戶能做的只有靜靜等待,甚至不確定虛擬機是否仍然在正常創(chuàng)建中,完全處于未知的狀態(tài)。

2、設(shè)計思路:異步DMA map,完美解決虛擬機創(chuàng)建耗時問題

為了解決這一個問題,阿里云異構(gòu)計算團隊研究了現(xiàn)有的虛擬化技術(shù)和實際應(yīng)用場景。雖然DMA map本身不能省去,但我們發(fā)現(xiàn)在系統(tǒng)啟動過程中DMA訪問雖然是隨機的、但并不會訪問到全部,由此阿里云異構(gòu)計算團隊提出了一種異步DMA map(async DMA map)的方法,即在虛擬機創(chuàng)建過程中僅map有限的內(nèi)存空間,剩余的大部分內(nèi)存空間可以在虛擬機啟動過程中于后臺異步map完成,從而保證用戶可以快速地獲取訪問虛擬機的權(quán)限。

這時,如何保證虛擬機在啟動過程中不會有設(shè)備通過DMA訪問到需要異步map的內(nèi)存就成為了關(guān)鍵。這個過程中,我們用到了大家比較熟悉的Virtioballoon,因為Virtioballoon設(shè)計之初即被用來占用虛擬機內(nèi)存使用,因此我們提出的解決方案不會涉及到大量、復(fù)雜的軟件改動,即可完美解決虛擬機創(chuàng)建耗時的問題。

圖2:async DMA map設(shè)計思路

Async DMA map主要設(shè)計思路就是:虛擬機創(chuàng)建時,低于4G內(nèi)存空間的DMA map請求會被正常處理,其他內(nèi)存空間的DMA map操作將會等待virtioballoon前端驅(qū)動加載完成后根據(jù)實際情況進行處理。

具體的操作流程如下:

首先,確保virtioballoon驅(qū)動先于VFIO設(shè)備驅(qū)動加載。這樣virtioballoon驅(qū)動會在配置空間中獲取初始的balloon大小,然后再根據(jù)balloon大小進行實際的虛擬機內(nèi)存的分配,被分配的內(nèi)存將從可用內(nèi)存中去除。在沒有釋放前,其他設(shè)備將無法申請到這部分被占用的內(nèi)存,那就不會被DMA訪問到,也就不需要在這之前進行map。

其次,完成balloon,獲得可異步執(zhí)行map內(nèi)存空間。Balloon的過程是經(jīng)過很多次inflate操作完成的。每次操作完成后,前端的virtioballoon會通知后端完成的inflate balloon大小及其對應(yīng)的PFN,位于宿主機上的后端驅(qū)動收到通知后,會將PFN從消息隊列中解析出來,并轉(zhuǎn)換為IOVA記錄在ballooned頁表中。待balloon完成后,后端驅(qū)動會得到一張完整的被virtioballoon占用的內(nèi)存頁表,這部分的內(nèi)存空間即是可以異步執(zhí)行map的部分。沒有在頁表中的內(nèi)存可能會被其他設(shè)備通過DMA訪問,因此需要即刻完成map操作。

最后,在保證虛擬機系統(tǒng)可繼續(xù)正常啟動的情況下,async DMA map正式開始。通過向virtioballoon前端驅(qū)動觸發(fā)deflate操作,從而向虛擬機歸還一定大小的內(nèi)存,前端virtioballoon驅(qū)動會將釋放的內(nèi)存地址同步給后端驅(qū)動,后端驅(qū)動接收到被釋放的內(nèi)存地址空間后,觸發(fā)同步的DMA map,通過分步的deflate及map,慢慢完成全部內(nèi)存的映射、鎖定,從而使虛擬機恢復(fù)到完整內(nèi)存資源可用狀態(tài)。

3.具體實踐:三個關(guān)鍵點優(yōu)化,進一步優(yōu)化啟動時間

在具體的實踐中,我們進行了balloon臨近地址空間自動合并、增加單次balloon頁面大小和預(yù)處理機制等三個關(guān)鍵點的優(yōu)化,以進一步優(yōu)化啟動時間。具體優(yōu)化如下:

(1)Balloon臨近地址空間自動合并。通過合并多次balloon的臨近內(nèi)存地址空間,可以顯著地減少觸發(fā)DMA map的次數(shù)。因為virtioballoon會在系統(tǒng)啟動初期被加載,此時的內(nèi)存使用較少,virtioballoon申請到的內(nèi)存地址絕大部分是連續(xù)的,臨近內(nèi)存地址的可合并率非常高。

(2)增加單次balloon頁面大小。內(nèi)存資源已經(jīng)不再是非常稀缺的資源,當(dāng)前virtioballoon前端驅(qū)動中基于小頁(4KB)大小的內(nèi)存申請機制已經(jīng)不太適合當(dāng)前大規(guī)格實例的業(yè)務(wù)場景?;跇I(yè)界用戶實際應(yīng)用場景的分析,我們將virtioballoon單次申請的內(nèi)存大小從4KB提高到2MB,這一舉措可減少約98%的前后端通信消耗,從而顯著減少了不必要的CPU資源占用。

(3)預(yù)處理機制。為了更快的完成異步DMA map操作,其實可以預(yù)先開始進行DMA map操作,而不是等待deflate觸發(fā)并收到virtioballoon前端驅(qū)動發(fā)出的通知才進行。在接收到前端發(fā)出的通知后,只需要做釋放地址已映射命中檢測即可。如地址未命中則可以插入DMA map操作,若命中則可以更快地返回通知給虛擬機進行后續(xù)的deflate操作。

圖3:VM啟動時間與內(nèi)存關(guān)系(左)、QEMu初始化時間與內(nèi)存關(guān)系(右)

如圖3,經(jīng)過上述的優(yōu)化(初始保留8G內(nèi)存給虛擬機),我們看到隨著分配給虛擬機的內(nèi)存增加,KVM虛擬機的啟動時間及QEMU初始化時間均沒有明顯增加。即我們將350G內(nèi)存KVM虛擬機的創(chuàng)建及啟動時間從原來的120秒以上減少到20秒以下,QEMU初始化時間縮減到7秒以內(nèi)。對于T級內(nèi)存的用戶,預(yù)計效率可提升10倍以上,可以極快地獲得虛擬機的訪問控制權(quán)限。

結(jié)語

未來,我們將持續(xù)依托阿里云智能,致力于云計算產(chǎn)品的性能及用戶體驗的優(yōu)化,為用戶提供便捷、高效的彈性計算產(chǎn)品。


文章推薦
Yandex俄羅斯搜索引擎引導(dǎo)者(一),yandex搜索引擎是哪個國家的
WhatsApp停用,whatsapp停用怎么處理
YouTube營銷指南,youtube多語種視頻營銷
TikTok廣告營銷指南,tiktok廣告投放有什么重要手段


特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進群
美國賣家交流群
加入
美國賣家交流群
掃碼進群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
ESG獨家招商-PHH GROUP賣家交流群
加入
ESG獨家招商-PHH GROUP賣家交流群
掃碼進群
《TikTok官方運營干貨合集》
《TikTok綜合運營手冊》
《TikTok短視頻運營手冊》
《TikTok直播運營手冊》
《TikTok全球趨勢報告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺篇》
《開店大全-東南亞篇》
《CD平臺自注冊指南》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運營實操指導(dǎo)
運營提效資源福利
平臺官方專屬優(yōu)惠
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機入駐更便捷

icon icon

返回頂部