繆靜文,王 召,俞 俊,朱廣新,楊云飛,程 聰
(南瑞集團(tuán)有限公司(國(guó)網(wǎng)電力科學(xué)研究院有限公司),江蘇 南京 211000)
隨著虛擬化技術(shù)[1-2]的迅速發(fā)展,桌面云成為一大研究熱點(diǎn),成為電力企業(yè)率先選擇云化的解決方案。作為一種典型的云計(jì)算應(yīng)用模式,桌面云以其統(tǒng)一的管理、便捷的接入與彈性的服務(wù)等優(yōu)點(diǎn)改變了用戶使用計(jì)算機(jī)的傳統(tǒng)方式。桌面云系統(tǒng)[3]通過(guò)終端設(shè)備來(lái)訪問(wèn)云端的應(yīng)用程序或者訪問(wèn)云端整個(gè)虛擬桌面。桌面云采用瘦客戶端+云服務(wù)的模式,所有的服務(wù)運(yùn)行在服務(wù)端。服務(wù)端統(tǒng)一管理所有服務(wù)器的計(jì)算、存儲(chǔ)與網(wǎng)絡(luò)資源,負(fù)責(zé)將用戶和具體資源做映射,并負(fù)責(zé)將具體資源調(diào)度給用戶。瘦客戶端只需少量的計(jì)算、存儲(chǔ)與網(wǎng)絡(luò)資源。
當(dāng)前的處理器體系結(jié)構(gòu)呈多樣化發(fā)展趨勢(shì),其中GPU[4-5]作為協(xié)處理器的一種已成為當(dāng)代高性能計(jì)算機(jī)系統(tǒng)的重要組成部分之一。1999年,NVIDIA將世界上第一款GPU推向市場(chǎng)。2007年,NVIDIA提出了CUDA(compute unified device architecture)統(tǒng)一計(jì)算設(shè)備架構(gòu)。GPU功能已從單純負(fù)責(zé)圖形處理和渲染發(fā)展到高速并行計(jì)算。鑒于其強(qiáng)大的并行計(jì)算能力和高吞吐率等,GPU成為高性能計(jì)算領(lǐng)域的主流加速器。近年來(lái),GPU虛擬化[6-8]成為了計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)領(lǐng)域中的重要研究熱點(diǎn)之一。
文中使用最新的GPU虛擬化技術(shù)和南瑞桌面云NCloud-D搭建原型系統(tǒng)。在此基礎(chǔ)上,提出性能測(cè)量方法和評(píng)價(jià)指標(biāo),并針對(duì)性地設(shè)計(jì)了大量實(shí)驗(yàn),以分析桌面云環(huán)境下的GPU虛擬化的性能。實(shí)驗(yàn)結(jié)果表明,最新的vGPU可以提供虛擬桌面較高的圖形加速性能。
目前,桌面云系統(tǒng)主要采用CPU處理器以及模擬的虛擬顯卡技術(shù)。CPU處理圖形的效率低,而GPU的圖形處理性能可達(dá)CPU的數(shù)十倍。在虛擬機(jī)中使用GPU結(jié)合CPU進(jìn)行圖形計(jì)算的方案,可提高圖形處理性能[9]。隨著桌面云應(yīng)用的逐漸普及,如何加速圖形處理和提高GPU利用率,成為桌面云環(huán)境下使用GPU的關(guān)鍵問(wèn)題。
針對(duì)上述問(wèn)題,文獻(xiàn)[10]采用GPU核心透?jìng)鹘o一臺(tái)虛擬桌面的GPU直通方案,虛擬桌面上能滿足圖形工作站等高端場(chǎng)景應(yīng)用,但是無(wú)法同時(shí)共享給多臺(tái)虛擬桌面使用。文獻(xiàn)[11]使用vGPU方案直接共享GPU,通過(guò)安裝在虛擬機(jī)上的圖形驅(qū)動(dòng)直接訪問(wèn)切片后的GPU資源。這種方式帶來(lái)硬件加速圖形的所有優(yōu)勢(shì),發(fā)揮出物理GPU的更多性能,從而實(shí)現(xiàn)虛擬機(jī)更高的圖形處理能力和擴(kuò)展能力。文獻(xiàn)[12]中搭建了vGPU和GamingAnywhere原型系統(tǒng),將云游戲運(yùn)行在虛擬化環(huán)境中,云游戲的響應(yīng)延遲和畫面質(zhì)量略有下降,但基本滿足云游戲的需求,在多個(gè)虛擬機(jī)中并發(fā)運(yùn)行云游戲時(shí)能公平地分配到GPU資源。
桌面云環(huán)境下將GPU資源[13-15]集中在云端管理,按需為不同場(chǎng)景調(diào)度vGPU。憑借vGPU技術(shù),每臺(tái)虛擬桌面的圖形命令被直接傳遞至GPU,GPU硬件實(shí)現(xiàn)時(shí)間分片(time-sliced),從而共享虛擬化圖形性能。然而實(shí)踐表明,vGPU可能會(huì)影響桌面云環(huán)境下的用戶體驗(yàn)。多臺(tái)虛擬桌面共享GPU后的圖形處理性能決定能否在桌面云環(huán)境中的實(shí)施。為此,文中使用GPU和南瑞桌面云NCloud-D搭建原型系統(tǒng),分析在桌面云環(huán)境中使用vGPU實(shí)現(xiàn)GPU共享的可行性。
南瑞桌面云NCloud-D整體分為辦公域、桌面云管理域、研發(fā)域和vGPU高性能域。桌面云宿主機(jī)集群位于信息內(nèi)網(wǎng),均采用四條千兆鏈路分別接入兩臺(tái)核心交換機(jī),實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡與鏈路冗余,提高服務(wù)器接入的可靠性;將網(wǎng)絡(luò)劃分為用戶數(shù)據(jù)網(wǎng)絡(luò)、管理網(wǎng)絡(luò)、遷移網(wǎng)絡(luò)等多個(gè)相互隔離的網(wǎng)絡(luò),且每個(gè)網(wǎng)絡(luò)都具有高可用性及足夠的帶寬。vGPU高性能域?qū)⑽锢鞧PU分片成多個(gè)vGPU,每個(gè)vGPU分配給各臺(tái)虛擬桌面使用。在存儲(chǔ)網(wǎng)接入方面,桌面云服務(wù)器均采用雙鏈路分別接入兩臺(tái)網(wǎng)絡(luò)交換機(jī)和SAN交換機(jī),實(shí)現(xiàn)存儲(chǔ)網(wǎng)絡(luò)的鏈路冗余,提高存儲(chǔ)網(wǎng)絡(luò)接入的可靠性。利用集中式存儲(chǔ),構(gòu)建統(tǒng)一的虛擬化資源池,構(gòu)建異構(gòu)存儲(chǔ)設(shè)備的統(tǒng)一管理,實(shí)現(xiàn)存儲(chǔ)資源的整合調(diào)度,實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)及用戶數(shù)據(jù)的分層存儲(chǔ)。
原型系統(tǒng)整體架構(gòu)如圖1所示。
圖1 原型系統(tǒng)整體架構(gòu)
桌面云下的GPU資源內(nèi)部架構(gòu)如圖2所示??梢钥闯?,NVIDIA的vGPU管理器部署在宿主機(jī)操作系統(tǒng)程序中,通過(guò)調(diào)度模塊對(duì)各個(gè)虛擬機(jī)上的GPU資源進(jìn)行調(diào)度。為了提升GPU的性能,調(diào)度模塊負(fù)責(zé)向宿主機(jī)操作系統(tǒng)上的GPU驅(qū)動(dòng)程序發(fā)送任務(wù),不負(fù)責(zé)該任務(wù)是否被正確處理。vGPU幀緩沖區(qū)在創(chuàng)建vGPU時(shí)從物理GPU幀緩沖區(qū)分配。vGPU保留對(duì)該幀緩沖區(qū)的獨(dú)占使用,直到它被銷毀。駐留在物理GPU上的所有vGPU共享對(duì)GPU引擎的訪問(wèn),包括3D圖形、視頻解碼和編碼引擎。最后,執(zhí)行結(jié)果返還給發(fā)起請(qǐng)求的虛擬桌面操作系統(tǒng)中的3D應(yīng)用程序。
圖2 桌面云下的vGPU內(nèi)部架構(gòu)
GPU應(yīng)用程序開(kāi)發(fā)的圖形處理接口主要有兩類:OpenGL與DirectX。文中兩種實(shí)驗(yàn)軟件涵蓋了OpenGL和DirectX接口。OpenGL是當(dāng)前圖形應(yīng)用最廣泛的標(biāo)準(zhǔn),也是開(kāi)發(fā)可交互、可移植的2D與3D圖形應(yīng)用程序的首選環(huán)境。DirectX是由微軟公司創(chuàng)建的多媒體編程接口。
作為CPU和顯卡測(cè)試系統(tǒng),CineBench最多可支持256個(gè)邏輯核心,還加強(qiáng)了著色器、抗鋸齒、陰影、燈光以及反射模糊等的考察,對(duì)CPU性能的檢測(cè)更加準(zhǔn)確。CineBench的第一項(xiàng)測(cè)量使用CPU渲染一張高精度的3D場(chǎng)景畫面,在單處理器單線程下只運(yùn)行一次;第二項(xiàng)測(cè)量針對(duì)顯卡的OpenGL性能。文中的實(shí)驗(yàn)設(shè)計(jì)針對(duì)顯卡的OpenGL性能。
PassMark PerformanceTest軟件的3D圖形測(cè)試旨在評(píng)估使用DirectX最常見(jiàn)功能時(shí)顯卡的性能,測(cè)量了3D圖像的創(chuàng)建和顯示速度。DirectX應(yīng)用程序編程接口(API),允許開(kāi)發(fā)人員創(chuàng)建游戲和其他高性能多媒體應(yīng)用程序。該軟件涵蓋了DirectCompute、DirectX 11、DirectX 10、DirectX 9 Complex、DirectX 9 Simple這五種類型。
在實(shí)驗(yàn)設(shè)計(jì)及性能分析前,特此說(shuō)明,NVIDIA為保護(hù)每個(gè)虛擬顯卡用戶的性能,默認(rèn)限制了每個(gè)虛擬顯卡用戶的性能上限。如果想充分發(fā)揮虛擬顯卡的性能,需把默認(rèn)參數(shù)pciPassthru0.cfg.frame_rate_limiter的值修改為0。
(1)FPS(frames per second)是畫面每秒傳輸幀數(shù),每秒鐘幀數(shù)越多,所顯示的動(dòng)作就會(huì)越流暢。FPS是測(cè)量用于保存、顯示動(dòng)態(tài)視頻的信息數(shù)量。FPS是CineBench測(cè)量虛擬顯存性能主要的結(jié)果,所以實(shí)驗(yàn)用FPS結(jié)果來(lái)反映虛擬顯存的性能。
(2)3D Graphics Mark。PassMark PerformanceTest中的3D Graphics Mark得分來(lái)衡量虛擬顯卡的綜合3D處理性能。
vGPU實(shí)現(xiàn)了虛擬桌面對(duì)GPU的共享,一臺(tái)服務(wù)器可以同時(shí)運(yùn)行多個(gè)虛擬桌面。然而實(shí)踐表明,共享GPU可能會(huì)影響桌面云環(huán)境下的用戶體驗(yàn)。為了驗(yàn)證桌面云環(huán)境下vGPU的可行性,本節(jié)設(shè)計(jì)一系列實(shí)驗(yàn)分析vGPU的圖形加速性能,從FPS值和3D Graphics Mark得分來(lái)分析使用vGPU技術(shù)對(duì)桌面云環(huán)境下用戶體驗(yàn)的影響。
4.1節(jié)設(shè)計(jì)南瑞桌面云環(huán)境下NVIDIA的GRID K1、Tesla M60與物理機(jī)的性能對(duì)比實(shí)驗(yàn)。4.2-4.4節(jié)設(shè)計(jì)南瑞桌面云環(huán)境下GRID K2顯卡的vGPU單并發(fā)與多并發(fā)性能實(shí)驗(yàn)。
表1展示了NVIDIA各型號(hào)顯卡的性能參數(shù)。K2顯卡是由2塊4 GB GPU芯片組成的,虛擬顯存(圖形幀緩沖區(qū))只能從一個(gè)芯片中進(jìn)行劃分,所以單臺(tái)虛擬桌面虛擬顯存的最大分配方案為4 GB,最小分配方案為256 MB。桌面云環(huán)境中K2顯卡采用直通模式時(shí),在虛擬桌面中被識(shí)別為2塊4 GB的顯卡,所以3D應(yīng)用程序其實(shí)也只能用到一塊4 GB顯卡的性能。
vGPU虛擬桌面的配置與臺(tái)式機(jī)的配置如表2所示。
表1 NVIDIA各型號(hào)顯卡的性能參數(shù)
表2 vGPU虛擬桌面與物理機(jī)的配置對(duì)比
本實(shí)驗(yàn)通過(guò)Cinebench軟件對(duì)比vGPU虛擬桌面、物理機(jī)、普通虛擬桌面的OpenGL性能,對(duì)相同顯存配置的臺(tái)式機(jī)(4C8G)、vGPU桌面云虛擬機(jī)(M60顯卡)、vGPU桌面云虛擬機(jī)(K1顯卡)與普通虛擬桌面進(jìn)行性能評(píng)分。虛擬桌面與臺(tái)式機(jī)各進(jìn)行4次實(shí)驗(yàn),求取平均值,性能對(duì)比結(jié)果如表3所示。
表3 vGPU虛擬桌面與物理機(jī)的性能對(duì)比
配置NVIDIA K1 vGPU的虛擬桌面基本上達(dá)到本實(shí)驗(yàn)中物理機(jī)圖形加速的性能,配置NVIDIA M60 vGPU的虛擬桌面的圖形性能超過(guò)本實(shí)驗(yàn)中物理機(jī)的圖形加速性能。未分配vGPU的虛擬桌面無(wú)法支撐調(diào)用OpenGL編程接口的軟件。實(shí)驗(yàn)結(jié)果表明,桌面云環(huán)境下的vGPU虛擬桌面與物理機(jī)運(yùn)行OpenGL的性能相當(dāng),使用vGPU技術(shù)能滿足圖形處理的實(shí)際業(yè)務(wù)需求。
本實(shí)驗(yàn)中單臺(tái)vGPU虛擬桌面的配置為4vCPU 8 GB內(nèi)存。通過(guò)Cinebench軟件分別對(duì)在WIN7和WIN10虛擬桌面中分配不同圖形幀緩沖區(qū)(不同虛擬顯存)時(shí)OpenGL的FPS值進(jìn)行實(shí)驗(yàn)。虛擬桌面每種虛擬顯存的分配方案均進(jìn)行5次實(shí)驗(yàn),并求取平均值,結(jié)果如圖3所示。
圖3 虛擬桌面分配不同圖形幀緩沖區(qū)時(shí)的FPS
虛擬桌面的256 MB顯存分配無(wú)法與其他顯存分配方案共存,已開(kāi)機(jī)其他顯存配置方案時(shí),會(huì)提示父資源池中的可用圖形資源量不足,無(wú)法執(zhí)行該操作。由圖3發(fā)現(xiàn),Windows7虛擬桌面分配4 GB圖形幀緩沖區(qū)(虛擬顯存)時(shí)的最大FPS值為136。虛擬顯存為256 M時(shí),F(xiàn)PS值最低,虛擬顯卡性能明顯較差。虛擬桌面中分配512 MB、1 GB、2 GB、4 GB的圖形幀緩沖區(qū)(虛擬顯存)時(shí),實(shí)驗(yàn)得到的FPS值差不多。因此,桌面云中虛擬顯卡的性能與所分配的虛擬顯存大小沒(méi)有正比關(guān)系。對(duì)比Windows7虛擬桌面與Windows10虛擬桌面的FPS值,實(shí)驗(yàn)結(jié)果表明Windows7虛擬桌面對(duì)OpenGL的支持相對(duì)較好。所以,支持OpenGL的畫圖類軟件在Windows7虛擬桌面上性能更佳。
本節(jié)設(shè)計(jì)Windows7虛擬桌面(4vCPU 8 GB內(nèi)存)固定分配1 GB圖形幀緩沖區(qū)(虛擬顯存)的并發(fā)實(shí)驗(yàn),并求取FPS的總和,每種并發(fā)實(shí)驗(yàn)進(jìn)行5次,并求取平均值,結(jié)果如表4所示。
表4 vGPU WIN7虛擬桌面并發(fā)的FPS
從圖4可以看出,K2顯卡(一塊4 GB GPU芯片)并發(fā)的FPS總和最大約188。在4.1節(jié)單臺(tái)WIN7虛擬桌面分配4 GB虛擬顯卡時(shí),Cinebench實(shí)驗(yàn)的最大FPS值為130,此結(jié)果受限于單并發(fā)實(shí)驗(yàn)工具本身。
圖4 vGPU WIN7虛擬桌面并發(fā)的FPS
隨著并發(fā)的虛擬桌面增多,每臺(tái)虛擬桌面的FPS值滑落得較明顯。進(jìn)一步分析得知,不同并發(fā)數(shù)實(shí)驗(yàn)時(shí),配置相同的虛擬桌面彼此間性能相當(dāng)。這表明在vGPU技術(shù)中使用了基于FPS感知的GPU調(diào)度策略,每臺(tái)虛擬桌面近似于公平獲得宿主機(jī)的GPU資源。通過(guò)增加集群中部署GPU的宿主機(jī)的數(shù)量,可以提升并發(fā)的虛擬桌面享受基本GPU加速的性能。
本實(shí)驗(yàn)采用PassMark PerformanceTest軟件,設(shè)計(jì)Windows7虛擬桌面(4vCPU 8 GB內(nèi)存)分配不同圖形幀緩沖區(qū)(不同虛擬顯存)時(shí)在DirectCompute、DirectX 11、DirectX 10、DirectX 9 Complex、DirectX 9 Simple這五種類型時(shí)的性能得分,最終得到3D Graphics Mark綜合評(píng)分。每種虛擬顯存的分配方案進(jìn)行5次實(shí)驗(yàn),求取平均值。一塊8 GB的K2顯卡直通給虛擬機(jī)時(shí),會(huì)被其識(shí)別為2塊4 GB顯卡,實(shí)際實(shí)驗(yàn)只能觸及一塊4 GB顯卡的性能瓶頸。最終實(shí)驗(yàn)結(jié)果如圖5所示,其中折線表示3D Graphics Mark的綜合評(píng)分。
圖5 WIN7虛擬桌面分配不同圖形幀緩沖區(qū)時(shí)的得分
從圖5可以看出,WIN7虛擬桌面的圖形幀緩沖區(qū)(虛擬顯存)分配1 GB、2 GB、4 GB、單卡直通4 GB時(shí),3D Graphics Mark數(shù)值差不多,顯存大小用來(lái)支持分辨率,在滿足分辨率需求的情況下,實(shí)驗(yàn)評(píng)分接近。WIN7虛擬桌面的虛擬顯存分配為512 M、256 M時(shí),3D Graphics Mark數(shù)值較低,無(wú)法支撐調(diào)用DirectX編程接口的軟件。
文中設(shè)計(jì)了vGPU與南瑞NCloud-D桌面云搭建原型系統(tǒng)。在此基礎(chǔ)上,設(shè)計(jì)了大量實(shí)驗(yàn),以分析桌面云環(huán)境下的GPU虛擬化性能。實(shí)驗(yàn)結(jié)果表明,vGPU技術(shù)對(duì)GPU資源有較高的利用效率,桌面云環(huán)境下的vGPU虛擬桌面與物理機(jī)性能相當(dāng),基本能滿足桌面云中圖形加速處理的實(shí)際業(yè)務(wù)需求;在多個(gè)虛擬桌面并發(fā)運(yùn)行的場(chǎng)景中,各虛擬桌面能公平分配到GPU資源。該研究可以作為桌面云環(huán)境下vGPU的工程實(shí)踐依據(jù)。對(duì)于桌面云環(huán)境下的OpenGL類軟件,單臺(tái)虛擬桌面預(yù)分配1 GB虛擬顯存,再根據(jù)用戶實(shí)際使用情況(顯示器數(shù)量、顯示分辨率、模型大小、模型復(fù)雜程度)進(jìn)行變更;對(duì)于桌面云環(huán)境下的未知業(yè)務(wù)場(chǎng)景,預(yù)分配1 GB虛擬顯存,可達(dá)到場(chǎng)景和性能的最優(yōu)配比。