摘 要: 在openstack云環(huán)境下通過(guò)對(duì)網(wǎng)卡I/O,、處理器、內(nèi)存和磁盤I/O幾個(gè)方面進(jìn)行對(duì)比分析,,比較了KVM虛擬機(jī)和物理機(jī)的性能差距,。最后根據(jù)分析結(jié)果得出了KVM虛擬機(jī)更適合于網(wǎng)絡(luò)I/O、內(nèi)存和處理器密集型任務(wù),,而不適合磁盤I/O密集型任務(wù)的結(jié)論,,并發(fā)現(xiàn)隨著虛擬機(jī)數(shù)量的增加網(wǎng)卡I/O和磁盤I/O的性能呈直線下降。
關(guān)鍵詞: KVM,;虛擬機(jī),;性能測(cè)試
隨著云計(jì)算的不斷發(fā)展,各種云計(jì)算管理平臺(tái)也應(yīng)運(yùn)而生,,如Eucalyptus,、Vmware、Xenserver,、Openstack,。在各種各樣的云計(jì)算管理平臺(tái)中只有Openstack是完全開源的,而開源的云計(jì)算管理平臺(tái)則一致被業(yè)界和學(xué)術(shù)界認(rèn)為是未來(lái)云計(jì)算發(fā)展的方向,。
Openstack是美國(guó)國(guó)家航空航天局(NASA)和Rackspace合作研發(fā)的一個(gè)云平臺(tái)管理的項(xiàng)目,,它主要由3個(gè)部分組成:nova(虛擬服務(wù)器部署和業(yè)務(wù)計(jì)算)模塊、swift(分布式云存儲(chǔ))模塊,、glance(虛擬機(jī)磁盤映像存儲(chǔ))模塊,。除了有Rackspace和NASA的大力支持外,后面還有包括Dell,、Citrix,、Cisco等公司的貢獻(xiàn)和支持,發(fā)展速度非???。
1 KVM技術(shù)
KVM(Kernel-based Virtual Machine)是由以色列的一個(gè)開源組織開發(fā)的基于Linux內(nèi)核的虛擬機(jī),于2008年被紅帽收購(gòu),。KVM由兩部分組成:(1)內(nèi)核中管理虛擬化硬件的設(shè)備驅(qū)動(dòng),,通過(guò)字符設(shè)備/dev/km實(shí)現(xiàn);(2)QEMU,用來(lái)模擬用戶的PC機(jī),。KVM與其他虛擬技術(shù)不同的是KVM是Linux內(nèi)核的一部分,,直接運(yùn)行于硬件之上,虛擬機(jī)作為一個(gè)正常的Linux進(jìn)程而實(shí)現(xiàn),,由標(biāo)準(zhǔn)Linux調(diào)度程序調(diào)度,,能受益于Linux內(nèi)核的所有特征,它能夠直接與硬件交互,,不需要修改虛擬化操作系統(tǒng),,相比于XEN等其他虛擬技術(shù)KVM更加輕量級(jí)。KVM虛擬機(jī)體系結(jié)構(gòu)如圖1所示,。
2 虛擬機(jī)性能評(píng)測(cè)方法
如今為止還沒(méi)有一套完整成熟的能為學(xué)術(shù)界和業(yè)界普遍接受和認(rèn)可的虛擬機(jī)性能評(píng)測(cè)與分析方案,。VMware公司作為虛擬化市場(chǎng)份額的最大占有者,并且是虛擬化性能評(píng)測(cè)委員會(huì)的成員,,其推出了一款程序測(cè)試方案——VMmark,。VMmark主要是對(duì)微軟的WindowsServer進(jìn)行的虛擬化性能測(cè)試與分析。但是對(duì)于普通用戶來(lái)說(shuō)其并不關(guān)心一臺(tái)虛擬服務(wù)器性能的高低,,他們關(guān)心的更多的是虛擬機(jī)和物理機(jī)相比其性能如何,,相比于物理機(jī)虛擬機(jī)要損失多少性能,具體到細(xì)節(jié)方面就是處理器,、內(nèi)存,、網(wǎng)卡I/O和磁盤I/O的性能與物理機(jī)相比其結(jié)果如何。因此本實(shí)驗(yàn)在性能測(cè)試方面還是采用傳統(tǒng)的性能測(cè)試工具和方法,。
在本實(shí)驗(yàn)中,,采用ubuntu-12.04.2-server-amd64.iso作為基準(zhǔn)操作系統(tǒng)。為保證測(cè)試數(shù)據(jù)的準(zhǔn)確性,,測(cè)試均采用系統(tǒng)自帶指令和程序進(jìn)行測(cè)試,。本實(shí)驗(yàn)中所測(cè)試的性能對(duì)象和性能標(biāo)準(zhǔn)如表1所示。
本實(shí)驗(yàn)所采用的服務(wù)器的配置如下:2顆Intel(R)Xeon(R)CPU E5520(2.27 GHz,,6核),,8 GB內(nèi)存,167 GB磁盤,,兩塊以太網(wǎng)卡,,其中一塊網(wǎng)卡通過(guò)路由器連接到局域網(wǎng)中。實(shí)驗(yàn)開始之前先用ubuntu-12.04.2-server-amd64.iso做為底層操作系統(tǒng),,使用openstack搭建起一個(gè)私有云環(huán)境,,然后使用KVM虛擬技術(shù)創(chuàng)建虛擬機(jī),虛擬機(jī)的配置為2個(gè)CPU,、2 GB內(nèi)存,、20 GB硬盤和一塊網(wǎng)卡,同時(shí)為其分配一個(gè)IP地址使其也連接到局域網(wǎng)內(nèi),。
在測(cè)試過(guò)程中,,每一項(xiàng)測(cè)試都進(jìn)行3次,最后進(jìn)行統(tǒng)計(jì)匯總,,然后以物理機(jī)的測(cè)試結(jié)果為基準(zhǔn),,將虛擬機(jī)的測(cè)試結(jié)果與物理機(jī)進(jìn)行對(duì)比和分析。每進(jìn)行一項(xiàng)測(cè)試之后都會(huì)將本次測(cè)試所產(chǎn)生的所有內(nèi)容刪去并重啟計(jì)算機(jī)從而保證本次測(cè)試不會(huì)對(duì)下一次測(cè)試結(jié)果產(chǎn)生影響,。
3 測(cè)試結(jié)果
首先進(jìn)行測(cè)試的是網(wǎng)卡I/O性能,,在本次測(cè)試中虛擬機(jī)和物理機(jī)都通過(guò)一臺(tái)路由器連接到同一個(gè)局域網(wǎng)內(nèi),然后從局域網(wǎng)內(nèi)同一臺(tái)ftp服務(wù)器下載一個(gè)3.13 GB大小的ISO鏡像文件,。為了保證測(cè)試的準(zhǔn)確性,,路由器沒(méi)有連接外網(wǎng),每次下載統(tǒng)計(jì)完成之后都要?jiǎng)h除下載內(nèi)容并重啟機(jī)器,。這個(gè)測(cè)試中主要使用wget指令,,wget是一個(gè)從網(wǎng)絡(luò)上自動(dòng)下載文件的工具,其主要測(cè)試的是虛擬機(jī)的網(wǎng)卡I/O性能,。經(jīng)過(guò)對(duì)測(cè)試結(jié)果標(biāo)準(zhǔn)化處理之后圖2中顯示了KVM虛擬機(jī)和物理機(jī)的網(wǎng)絡(luò)I/O對(duì)比結(jié)果,。
從圖2中可以看出KVM虛擬機(jī)的網(wǎng)絡(luò)I/O性能與物理機(jī)相比是非常接近的。
從圖3可以看出在壓縮時(shí)間方面KVM虛擬機(jī)的壓縮時(shí)間相比于物理機(jī)有一定的損失,,損失比大概在13%左右,。
然后進(jìn)行的是解壓測(cè)試,同壓縮測(cè)試相同的是解壓測(cè)試也采用的是bzip2指令,,但是不同的是壓縮測(cè)試是一個(gè)cpu密集型任務(wù),,主要體現(xiàn)的是機(jī)器的cpu性能,而解壓測(cè)試則主要體現(xiàn)的是內(nèi)存的性能,。其測(cè)試對(duì)象是剛進(jìn)行壓縮測(cè)試時(shí)所產(chǎn)生的壓縮文件,,其大小為3.0 G。其測(cè)試對(duì)比結(jié)果如圖4所示,。
從圖4可以看出在解壓時(shí)間方面KVM虛擬機(jī)相對(duì)于物理機(jī)的損失大于其壓縮時(shí)間的損失,,性能損失率大概在18%左右,但是也在可接受范圍之內(nèi),。
在最后進(jìn)行的是磁盤I/O性能的測(cè)試,,本次測(cè)試中采用的是cp指令,每次執(zhí)行完之后都會(huì)刪除掉復(fù)制過(guò)去的文件只保留源文件然后對(duì)機(jī)器進(jìn)行重啟,,cp操作對(duì)cpu和內(nèi)存沒(méi)有太大壓力,,其主要測(cè)試集中在硬盤的I/O性能。在本次測(cè)試中把一個(gè)3.2 G的鏡像文件拷貝到同一個(gè)ext4分區(qū)下,。其測(cè)試對(duì)比結(jié)果如圖5所示,。
從圖5可以看出KVM虛擬機(jī)的磁盤傳輸性能還沒(méi)有達(dá)到物理機(jī)磁盤傳輸性能的40%,,損失比非常大,其效果是非常不理想的,。
在單臺(tái)虛擬機(jī)性能測(cè)試完成之后,,最后測(cè)試了網(wǎng)卡I/O和硬盤I/O性能和虛擬機(jī)數(shù)量的關(guān)系,本次測(cè)試中分別在openstack云環(huán)境下創(chuàng)建了1臺(tái),、2臺(tái),、3臺(tái)虛擬機(jī),測(cè)試過(guò)程中每個(gè)結(jié)果測(cè)試3次,,每次測(cè)試完成之后重啟虛擬機(jī),,并最終以1臺(tái)虛擬機(jī)的性能為基準(zhǔn),將兩臺(tái)和3臺(tái)虛擬機(jī)的性能與其進(jìn)行對(duì)比分析,。其測(cè)試對(duì)比結(jié)果圖如圖6,、圖7所示。
分析圖6可以看出,,網(wǎng)卡I/O性能與虛擬機(jī)的數(shù)量關(guān)系較大,,隨著虛擬機(jī)數(shù)量的增加,網(wǎng)卡I/O的性能呈大幅下降的趨勢(shì),,可以說(shuō)虛擬機(jī)數(shù)量的增加對(duì)網(wǎng)卡I/O性能的影響是比較大的,。從圖7看到,當(dāng)虛擬機(jī)數(shù)量增加到2臺(tái)的時(shí)候硬盤I/O的性能只有很小的降低,,可以說(shuō)虛擬機(jī)硬盤I/O的性能還是保持在令人滿意的狀態(tài),,但是當(dāng)虛擬機(jī)數(shù)量增加到3的時(shí)候,硬盤I/O的性能大幅下降了一半以上,。性能只有2臺(tái)時(shí)的一半不到,。由此可以看出,隨著虛擬機(jī)數(shù)量的增加,,對(duì)網(wǎng)卡I/O和硬盤I/O的性能影響是比較大的,。在openstack云環(huán)境中當(dāng)增加虛擬機(jī)的數(shù)量時(shí),需要著重考慮網(wǎng)卡I/O和硬盤I/O的性能,。
本文主要評(píng)測(cè)了在openstack云環(huán)境下KVM虛擬機(jī)的基本性能,,并使用了各種測(cè)試方法來(lái)比較了KVM虛擬機(jī)與物理機(jī)性能的差別。
在實(shí)驗(yàn)中可以看出,,在網(wǎng)卡I/O性能方面KVM虛擬機(jī)與物理機(jī)的性能相比是不相上下的,,甚至是完全相同的。采用bzip2所進(jìn)行的壓縮測(cè)試主要體現(xiàn)的是處理器的處理能力,,可以看出相比于物理機(jī)KVM的處理器性能損失是比較少的,,在可接受范圍之內(nèi)。解壓測(cè)試則主要體現(xiàn)的是內(nèi)存的性能,,其性能損失比雖然比處理器要高一些但是也都是在可接受范圍以內(nèi),。唯一性能損失比較大的就是磁盤I/O性能,,從測(cè)試結(jié)果可以看出,其性能還不到物理機(jī)的40%,。
最后測(cè)試了網(wǎng)卡I/O,、硬盤I/O性能和虛擬機(jī)數(shù)量的關(guān)系,發(fā)現(xiàn)隨著虛擬機(jī)數(shù)量的增加,,網(wǎng)卡I/O和硬盤I/O的性能都呈現(xiàn)大幅度下降的趨勢(shì),。
從以上分析可以得出本文的結(jié)論,,當(dāng)使用openstack搭建起私有云環(huán)境時(shí),,對(duì)于處理器和內(nèi)存尤其是網(wǎng)卡I/O性能要求比較高的業(yè)務(wù),KVM虛擬技術(shù)是一個(gè)很不錯(cuò)的選擇方案,,但是當(dāng)磁盤I/O密集型應(yīng)用為主要業(yè)務(wù)時(shí),,KVM虛擬化解決方案就并不是一個(gè)很好的選擇了,并且在增加虛擬機(jī)數(shù)量的時(shí)候需要著重考慮網(wǎng)卡I/O和硬盤I/O性能的下降,,否則虛擬機(jī)的性能將不盡如人意,。
參考文獻(xiàn)
[1] 于波.Linux KVM的虛擬化性能[J].軟件世界,2007,,6(5):49-50.
[2] 崔澤永,,趙會(huì)群.基于KVM的虛擬化研究及應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,,21(6):108-111.
[3] 蘭雨晴,,宋瀟豫,馬立克,,等.系統(tǒng)虛擬化技術(shù)性能評(píng)測(cè)[J].電信科學(xué),,2010(8):19-24.
[4] 余平.QEMU-KVM實(shí)現(xiàn)虛擬機(jī)動(dòng)態(tài)負(fù)載均衡[J].技術(shù)應(yīng)用,2012(6):59-62.
[5] 李亞奇.虛擬化云計(jì)算中資源管理的研究[J].電腦知識(shí)與技術(shù),,2013(6):2916-2917.
[6] 孫琳程.虛擬機(jī)KVM與XEN的性能分析[J].電腦知識(shí)與技術(shù),,2013(4):2364-2365.
[7] MAKHIJA. VMMARK: a scalable benchmark for virtualized systems[R]. Tech report, Vmware,, Inc,, 2006.