突破性能极限——阿里云神龙最新ASPLOS论文解读
作者 |?阿里云神龍團(tuán)隊(duì)
?責(zé)編 | 徐威龍
封圖|?CSDN 下載于視覺中國
日前,ASPLOS 2020公布了計算機(jī)界最新科技成果,其中包括阿里云提交的名為《High-density Multi-tenant Bare-metal Cloud》的論文,該論文闡述了阿里云自研的神龍服務(wù)器架構(gòu)如何解決困擾云計算行業(yè)多年的虛擬化性能損耗問題,打破物理機(jī)的性能神話,讓云服務(wù)器突破性能極限。
此次入選意味著全球計算機(jī)頂會對阿里云自研技術(shù)的認(rèn)可,也意味著中國創(chuàng)新技術(shù)在全球計算機(jī)界爭得了一席之地。
ASPLOS 是綜合體系結(jié)構(gòu)、編程語言和操作系統(tǒng)三個方向的計算機(jī)系統(tǒng)領(lǐng)域頂級會議,從1982年創(chuàng)辦至今推動了多項(xiàng)計算機(jī)系統(tǒng)技術(shù)的發(fā)展,一般論文錄用率在20%左右。
阿里云本次入選的論文題為《High-density Multi-tenant Bare-metal Cloud》,由阿里云研究員張獻(xiàn)濤帶領(lǐng)的神龍技術(shù)團(tuán)隊(duì)撰寫,詳細(xì)解讀了神龍架構(gòu)的技術(shù)優(yōu)勢:超越傳統(tǒng)物理機(jī)100%的算能、分鐘級交付能力、安全物理隔離和云平臺全系打通等。
虛擬化是云計算的基礎(chǔ),它將物理服務(wù)器虛擬化成想要的計算單元,進(jìn)而擁有最大的彈性,然而卻會導(dǎo)致性能損耗。如何解決這樣的矛盾?阿里在2017年推出了“神龍架構(gòu)”,彌補(bǔ)虛擬化的性能損耗,同時擁有云的彈性和運(yùn)維優(yōu)勢。
2019年杭州云棲大會上,阿里云發(fā)布了第三代神龍架構(gòu),全面支持ECS虛擬機(jī)、裸金屬、云原生容器等,在IOPS、PPS等方面提升5倍性能,可幫助用戶降低50%的計算成本。去年雙11核心系統(tǒng)100%上云,神龍大放異彩,成功扛住了54.4萬筆/秒的訂單創(chuàng)建峰值,與同配置物理機(jī)相比,不僅業(yè)務(wù)系統(tǒng)性能提升20%,而且抗高負(fù)載壓力表現(xiàn)更好,整個業(yè)務(wù)性能非常平穩(wěn)和線性。?
不僅如此,神龍還是目前最流行的容器技術(shù)的最佳拍檔。基于神龍架構(gòu)的阿里云容器服務(wù)對比物理機(jī)有10%-30%的性能優(yōu)勢。
目前,神龍架構(gòu)已大規(guī)模應(yīng)用于淘寶、天貓、菜鳥等業(yè)務(wù),用于解決高峰值的性能瓶頸問題。
本次入選ACM ASPLOS論文題目為《High-density Multi-tenant Bare-metal Cloud》,由阿里云研究員兼創(chuàng)新產(chǎn)品線總負(fù)責(zé)人張獻(xiàn)濤、阿里云高級技術(shù)專家鄭曉、阿里云資深技術(shù)專家楊航及其他神龍團(tuán)隊(duì)共同撰寫。?
該文首次全面解析了時下流行的裸金屬云計算服務(wù)、神龍架構(gòu)內(nèi)涵。將作為新一代虛擬化技術(shù)發(fā)展方向的神龍,與現(xiàn)有架構(gòu)作對比,詳細(xì)闡述了兩者在軟硬件、核心計算性能、虛擬化開銷的異同。論文中對多種業(yè)務(wù)表現(xiàn)上面的性能數(shù)據(jù)充分揭示了神龍裸金屬架構(gòu)的特有優(yōu)勢。以下為該論文的詳細(xì)解讀。
摘要
虛擬化是云計算的基石,多租戶(Virtual Machines)共享一個物理服務(wù)器,提高了數(shù)據(jù)中心服務(wù)器的利用率,使得云計算服務(wù)商可以提供更經(jīng)濟(jì)高效的服務(wù)。但是,虛擬化下多VM共享物理服務(wù)器的技術(shù)會引入不少安全問題,尤其是最近的側(cè)通道攻擊等。
此外, CPU、內(nèi)存和 I/O 在虛擬化性能方面會產(chǎn)生不可忽略的開銷。為此,物理服務(wù)器租賃已成為公共云中新興的服務(wù)類型,物理服務(wù)器租賃為用戶提供了強(qiáng)大的隔離性、對硬件的全面和直接訪問以及更可預(yù)測的性能。
但是物理服務(wù)器租賃的方式也有其缺點(diǎn):它只能針對單租戶,且不具備可擴(kuò)展性、成本又高,適應(yīng)性弱。當(dāng)前物理服務(wù)器租賃只能將整個物理服務(wù)器租給單個用戶,并且在租用服務(wù)器后用戶無法方便的替換鏡像,存儲等云計算的基本服務(wù)。
在本文中,阿里云提出了一種創(chuàng)新的高密度多租戶共享彈性裸金屬服務(wù)器的設(shè)計,也就是阿里云神龍彈性裸金屬架構(gòu)(論文中為了滿足評審的要求稱為BM-Hive)。在阿里云神龍高密裸金屬架構(gòu)中,每個裸金屬實(shí)例都運(yùn)行在一個單獨(dú)設(shè)計的計算子板上,該計算子板帶有專有的 CPU 和內(nèi)存模塊。BM-Hive為每個計算子板配備了硬件/軟件混合 virtio I/O 系統(tǒng),使客戶實(shí)例能夠直接訪問阿里云網(wǎng)絡(luò)和存儲服務(wù)。
BM-Hive 可在單個物理服務(wù)器中托管多達(dá) 16 個裸金屬實(shí)例,顯著提高裸金屬服務(wù)器的實(shí)例密度。此外,BM-Hive 在硬件級別嚴(yán)格隔離每個裸金屬實(shí)例,以提高安全性和隔離性。神龍彈性裸金屬高密方案已經(jīng)在阿里云的公共云部署。它目前同時為百萬級用戶提供服務(wù)。
介紹
物理服務(wù)器租賃的出現(xiàn)是為了滿足對性能或者安全性有非常苛刻要求的客戶。但對于單租戶,低密度的物理服務(wù)器卻存在成本高的問題。公共云上面的大多數(shù)客戶是中小規(guī)格客戶。
阿里云統(tǒng)計云服務(wù)上面的各個規(guī)格的VM的vCPU數(shù)量,對于需求小于32Core 的VM占到了95%以上。而現(xiàn)有物理服務(wù)器的CPU規(guī)格最小也有64Core,最高達(dá)到128Core。這些中小客戶別無選擇,要么放棄物理機(jī)級別的性能與安全性,采用傳統(tǒng)虛擬化的VM,要么租賃整個服務(wù)器,而放棄性價比。這也是不具備彈性的裸金屬公共云尚未成為主流的重要原因之一。
為此,阿里云設(shè)計了神龍高密度彈性裸金屬架構(gòu):一個可擴(kuò)展的,支持多租戶的彈性裸金屬硬件虛擬化方案。該裸金屬框架(BM-Hive)既能保證CPU和內(nèi)存擁有本地物理機(jī)運(yùn)行時的性能,又實(shí)現(xiàn)IO設(shè)備的硬件虛擬化,同時具備云計算的分鐘級計費(fèi)、彈性擴(kuò)容等最重要功能。
BM-Hive由三個模塊組成:計算子板,IO-Bond,BM-hypervisor。計算子板包含了可替代的裸金屬實(shí)例的CPU與內(nèi)存;BM-hypervisor運(yùn)行在阿里云的基礎(chǔ)物理服務(wù)器上,它可以托管最大16個計算子板;IO-Bond是連接計算子板與BM-Hypervisor的紐帶,作者在后續(xù)章節(jié)將會詳細(xì)介紹這三個部分。
采用BM-Hive的方案顯著優(yōu)點(diǎn):
經(jīng)濟(jì)實(shí)惠:采用了高達(dá)16個裸金屬實(shí)例共享一個物理服務(wù)器,能顯著降低客戶成本
單線程性能優(yōu)異:裸金屬實(shí)例可以自由采用高主頻CPU,比如i7 4.2GHz
兼容當(dāng)前運(yùn)維體系:客戶可以像使用其他非裸金屬實(shí)例一樣操作裸金屬實(shí)例,包括制作鏡像、更換系統(tǒng)盤、添加/刪除云盤等云計算特有便捷操作
對比當(dāng)前公共云上多種不同實(shí)例優(yōu)劣如下:
神龍裸金屬架構(gòu)是軟硬一體化的虛擬化架構(gòu)
神龍裸金屬軟硬一體虛擬化架構(gòu)是對現(xiàn)有虛擬化的一個自然演進(jìn)與升級換代。入下圖所示,在整體架構(gòu)上面,BM-Hive與傳統(tǒng)虛擬化方案在CPU/內(nèi)存方面、運(yùn)維體系接入、多租戶復(fù)用等方面非常相近。神龍裸金屬開發(fā)了一套適合裸金屬共享方案的軟硬件一體BM-Hypervisor來處理計算子板的IO子系統(tǒng)。
1、當(dāng)前虛擬化主要面臨如下問題:
在詳細(xì)探討神龍裸金屬架構(gòu)之前,我們先來看看當(dāng)前云計算虛擬化面臨的一些問題。而神龍裸金屬軟硬一體虛擬化方案很好的解決了這些問題。
虛擬化開銷無法滿足高性能需求
虛擬化性能存在無法控制的抖動,從而無法滿足對性能極致要求的場景
虛擬化的安全隔離性達(dá)不到特定行業(yè)要求
嵌套虛擬化的性能無法滿足客戶需求
1)虛擬化開銷:
當(dāng)前虛擬化的基本原理決定了CPU必須要在vCPU環(huán)境與物理CPU環(huán)境下來回切換(VM-Exit)。頻繁的切換會導(dǎo)致嚴(yán)重的VM性能問題。比如一個典型的直通設(shè)備中斷,在虛擬化下處理流程就非常長。
KVM hypervisor下面一個虛擬化切換至少需要幾千個時鐘周期,開銷有可能會達(dá)到~10us。一般情況下VMExit(比如中斷)達(dá)到5K左右,VM的性能將開始受影響。還有各種原因?qū)е碌腣MExit,比如IPI,EPT violation,MMIO訪問,等等。
阿里云采樣了30萬個虛擬化實(shí)例的運(yùn)行數(shù)據(jù),發(fā)現(xiàn)每秒1萬次以上VM-Exit的實(shí)例達(dá)到3.82%,甚至還有不少每秒超過10萬切換的實(shí)例。
神龍裸金屬BM-Hive由于采用了計算子板直接運(yùn)行實(shí)例,避免了任何傳統(tǒng)CPU/內(nèi)存虛擬化的開銷。
2)虛擬化的性能抖動:
由于客戶實(shí)例與系統(tǒng)服務(wù)都共享同一個CPU,這就導(dǎo)致了當(dāng)宿主機(jī)系統(tǒng)服務(wù)繁忙時可能影響到客戶實(shí)例的運(yùn)行。阿里云采樣了2萬個實(shí)例在運(yùn)行中CPU被搶占的情況,發(fā)現(xiàn)在共享性實(shí)例上,有200個以上的實(shí)例,在運(yùn)行中被系統(tǒng)占用的CPU利用率超過2%。
也就是說這200個實(shí)例的實(shí)際CPU性能是98%而不是100%,同樣的情況在獨(dú)享型的實(shí)例也有發(fā)生。畢竟中斷等處理是一定需要CPU在宿主機(jī)系統(tǒng)中才能處理的。而在BM-Hive下的實(shí)例,系統(tǒng)服務(wù)在BM-hypervisor下運(yùn)行,與計算子板的CPU為不同的物理CPU,所以神龍裸金屬實(shí)例根本就不存在任何搶占計算資源的問題。
3)虛擬化的安全性:
這個不是一個新問題,我們都承認(rèn)安全級別從低到高的形態(tài):進(jìn)程->容器->虛擬化->物理機(jī)。今年發(fā)生的側(cè)信道攻擊等都說明,虛擬化下實(shí)例并非牢不可破。而神龍裸金屬實(shí)例運(yùn)行在獨(dú)立的計算子板之上,是天然的物理隔離,不存在這些安全問題。
4)嵌套虛擬化性能問題:
一般來說KVM嵌套虛擬化的性能損失在20%以上,尤其是遇到一些IO操作更頻繁的場景。因此當(dāng)前云計算實(shí)例上很難在滿足客戶二次虛擬化的要求。而神龍裸金屬實(shí)例卻可以運(yùn)行客戶在實(shí)例內(nèi)部再次運(yùn)行他們自己喜歡的各種硬件加速的虛擬化方案。
神龍裸金屬架構(gòu)系統(tǒng)設(shè)計
為了解決傳統(tǒng)虛擬的諸多問題,BM-Hive的設(shè)計考慮目標(biāo)為:
多租戶
物理機(jī)隔離安全性
接入現(xiàn)有運(yùn)維體系
物理機(jī)性能
低成本
圖3顯示了BM-Hive的整體系統(tǒng)架構(gòu)。阿里云把神龍裸金屬實(shí)例稱為:BM-guest。把基于傳統(tǒng)虛擬化的實(shí)例稱為:VM-guest。每個裸機(jī)服務(wù)器由底座和多個計算子板構(gòu)成。該底座本質(zhì)上是一個簡化的基于 Xeon 的服務(wù)器。
每個計算子板都有一個PCIe 擴(kuò)展板連接到底座。其主要組件包括 CPU、內(nèi)存、PCIe 總線和 IO-Bond。IO-Bond 是用FPGA實(shí)現(xiàn)的硬件接口。它連接底座和計算子板的PCIe總線,功能類似與PCIe的透明橋功能。
IO-Bond在計算子板的PCIe總線上,它模擬多個virtio設(shè)備并由標(biāo)準(zhǔn)virtio內(nèi)核驅(qū)動程序支持。IO-Bond充當(dāng)bm-guest/virtio前端與后端BM-Hypervisor的橋梁。目前,IO-Bond 支持 virtio 設(shè)備網(wǎng)絡(luò)和存儲(塊設(shè)備)。它可以很容易地擴(kuò)展支持其他virtio設(shè)備。
實(shí)驗(yàn)數(shù)據(jù)分析
我將對BM-Hive的CPU/內(nèi)存系統(tǒng)的性能與傳統(tǒng)虛擬化做對比,同時也對網(wǎng)絡(luò)、存儲等IO子系統(tǒng)做數(shù)據(jù)性能的分析。最后會提供神龍裸金屬實(shí)例在真實(shí)業(yè)務(wù)場景下的性能表現(xiàn)。
1、神龍裸金屬實(shí)例的CPU與內(nèi)存性能分析
裸金屬實(shí)例的本地CPU和內(nèi)存性能對用戶至關(guān)重要。圖7和8呈現(xiàn)了相同配置下,裸金屬實(shí)例與虛擬化實(shí)例在運(yùn)行SPEC CINT 2006測量的CPU性能差異,用STREAM工具測試內(nèi)存性能的差距。
上圖數(shù)據(jù)做了歸一化的處理,可以看到裸金屬實(shí)例的CPU性能與物理機(jī)幾乎沒有區(qū)別,甚至有些項(xiàng)還優(yōu)于物理機(jī),而虛擬化實(shí)例下CPU性能一般有0-4%的損失。內(nèi)存方面也類似,虛擬化實(shí)例的內(nèi)存帶寬是裸金屬實(shí)例的98%左右。
2、IO子系統(tǒng)的性能分析
BM-guest和VM-guest均基于virtio的I/O路徑接入阿里云VPC網(wǎng)絡(luò)與云存儲系統(tǒng),他們的區(qū)別在于BM-Hive的virtio具有硬件-軟件混合設(shè)計。在本節(jié)中,阿里云將BM-Guest與VM-guest的網(wǎng)絡(luò)與存儲子系統(tǒng)做性能對比。
阿里云兩種實(shí)例產(chǎn)品定義的網(wǎng)絡(luò)訪問最大發(fā)包速限定于4M PPS,帶寬最大為 10Gbit/s,存儲限制為 25 IOPS和300MBps。因此,測試的目的在于兩種實(shí)例是否都能達(dá)到設(shè)計目標(biāo)。
PPS:阿里云看到BM-Guest/VM-guest都能達(dá)到設(shè)計的4M UDP PPS目標(biāo),但是VM-Guest更加平順,這個可能是由于BM-guest經(jīng)過的軟硬件接口的路徑要比VM-guest長得多導(dǎo)致。
Latency:在延時方面,通過三種測試工具得到VM-guest的網(wǎng)絡(luò)延時要稍優(yōu)于同類型的BM-Guest,差距不大。
Storage IO:存儲IO的性能上面BM-Guest則要全面優(yōu)于VM-guest。隨機(jī)讀寫的IO訪問延時方面BM-guest優(yōu)于VM-guest,而在長尾數(shù)據(jù)方面BM-guest數(shù)據(jù)優(yōu)于VM-guest 50%以上。
3、客戶典型應(yīng)用方面
通過對真實(shí)應(yīng)用場景的對比,阿里云更能發(fā)現(xiàn)裸金屬實(shí)例的優(yōu)勢。比如他們對比了兩種實(shí)例在分別在網(wǎng)絡(luò)服務(wù)器nginx,數(shù)據(jù)庫mariaDB,以及內(nèi)存型數(shù)據(jù)庫Redis等數(shù)據(jù)差異。
Nginx:大多數(shù)客戶選用的網(wǎng)站服務(wù)類型。BM-guest的每秒請求數(shù)與每請求處理時間等方面都要優(yōu)于VM-guest 50%以上
MariaDB:MariaDB是一個標(biāo)準(zhǔn)的測試數(shù)據(jù)類型,集成在sysbench之中。BM-guest的讀取性能超過VM-guest15%以上,而在寫性能上更是超出50%以上
Redis:是內(nèi)存型數(shù)據(jù)結(jié)構(gòu)讀取數(shù)據(jù)庫。Redis被廣泛應(yīng)用于提高服務(wù)器性能與服務(wù)能力。BM-Guest在Redis測試表現(xiàn)也全面優(yōu)于VM-guest。如圖15與圖16。此處不再累述。
一些思考
IO-Bond的性能優(yōu)化:IO-Bond處于IO系統(tǒng)的關(guān)鍵性能路徑之上。當(dāng)前由FPGA實(shí)現(xiàn)。在將來阿里云可以通過ASIC芯片的方式實(shí)現(xiàn),從而進(jìn)一步提升網(wǎng)絡(luò)與存儲、性能
熱遷移與熱升級:熱升級在裸金屬實(shí)例上面是可以實(shí)現(xiàn)的。阿里云在升級底座BM-Hypervisor的同時可以做到對客戶實(shí)例無感知。阿里云在2019年ASPLOS的論文中就有詳細(xì)介紹實(shí)例熱升級的技術(shù)《Fast and Scalable VMM Live Upgrade in Large Cloud Infrastructure》。熱遷移理論上,裸金屬實(shí)例也可以實(shí)現(xiàn),阿里云做過一些嘗試。目前也正在開發(fā)中。
SGX支持:SGX的支持在裸金屬實(shí)例上面沒有任何問題。相反由于去掉了虛擬化的阻礙,SGX的支持更容易。
總結(jié)
作者介紹了神龍高密度裸金屬云服務(wù) BM-Hive 的設(shè)計、實(shí)施和測試數(shù)據(jù)。實(shí)踐證明,作為行業(yè)下一代虛擬化的發(fā)展方向,神龍的軟硬一體化方案在兼容現(xiàn)有虛擬化優(yōu)點(diǎn)的前提下,全面提升了性能與安全性。
推薦閱讀:Docker 概念很難理解?一文搞定 Docker 端口綁定DevOps 轉(zhuǎn)型時如何安全融入?對企業(yè)產(chǎn)出有何影響?2019年 DevOps 最新現(xiàn)狀研究報告解讀 | 原力計劃 十分鐘上手 React+MirrorX,從此前端大神代碼不再難懂 | 原力計劃 第一批復(fù)工的人,都栽在了公司的廁所...... 如何用Jupyter Notebook制作新冠病毒疫情追蹤器? 比特幣最主流,以太坊大跌,區(qū)塊鏈技術(shù)“萬金油”紅利已結(jié)束 | 區(qū)塊鏈開發(fā)者年度報告 真香,朕在看了! 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的突破性能极限——阿里云神龙最新ASPLOS论文解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云+X案例展 | 传播类:k3s基于逾百
- 下一篇: IDEA的基本使用:让你的IDEA有飞一