亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

嵌入式網(wǎng)絡(luò)虛擬化環(huán)境中VirtIO網(wǎng)絡(luò)虛擬化工作方法_2

文檔序號(hào):8301455閱讀:來(lái)源:國(guó)知局
開(kāi)始計(jì)時(shí),則跳轉(zhuǎn)到步驟4 ;若尚未開(kāi)始計(jì)時(shí),則啟動(dòng)計(jì)時(shí)器,進(jìn)入步驟3 ;
[0029]步驟3:計(jì)時(shí)器的計(jì)時(shí)時(shí)間結(jié)束后,客戶機(jī)執(zhí)行超級(jí)調(diào)用hypercall通知宿主機(jī),客戶機(jī)切換到虛擬機(jī)監(jiān)控程序,虛擬機(jī)監(jiān)控程序從vring隊(duì)列取出數(shù)據(jù),處理完畢后將結(jié)果添加到vring隊(duì)列并發(fā)送中斷給客戶機(jī);
[0030]步驟4:此次調(diào)用結(jié)束。
[0031]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
[0032]本發(fā)明主要涉及的一個(gè)發(fā)明點(diǎn)就是借鑒了網(wǎng)卡中斷節(jié)制技術(shù),改進(jìn)Virt1的前端驅(qū)動(dòng)程序,對(duì)Virt1網(wǎng)絡(luò)引入延遲機(jī)制。通過(guò)該發(fā)明點(diǎn)的作用,客戶機(jī)在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)I/O時(shí)并不立刻將控制權(quán)移交給宿主機(jī),而是將數(shù)據(jù)緩存到隊(duì)列里,經(jīng)過(guò)一定的時(shí)間后再進(jìn)行上下文切換,通知宿主機(jī)從緩存隊(duì)列獲取數(shù)據(jù),從而顯著地減少了客戶機(jī)和宿主機(jī)上下文切換的次數(shù),節(jié)省了大量的CPU資源以處理更多的網(wǎng)絡(luò)I/O。通過(guò)實(shí)驗(yàn)可以發(fā)現(xiàn),在設(shè)置一定的時(shí)間延遲內(nèi),網(wǎng)絡(luò)吞吐量最大有3倍以上的提升。
【附圖說(shuō)明】
[0033]通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0034]圖1為KVM/ARM架構(gòu)圖。
[0035]圖2為Virt1的驅(qū)動(dòng)程序架構(gòu)抽象圖。
[0036]圖3為Virt1的軟件層次圖。
[0037]圖4為Virt1的工作流程圖。
[0038]圖5為客戶機(jī)的數(shù)量與網(wǎng)絡(luò)的吞吐量之間的關(guān)系圖。
[0039]圖6為前端驅(qū)動(dòng)改進(jìn)后的VirtlO-net的工作流程圖。
[0040]圖7為傳統(tǒng)VirtlO-net在不同數(shù)量虛擬機(jī)情況下,網(wǎng)絡(luò)的吞吐量。
[0041]圖8為本發(fā)明中改進(jìn)的VirtlO-net在6臺(tái)虛擬機(jī)情況下,延遲時(shí)間在O到30毫秒的情況下的網(wǎng)絡(luò)吞吐量。
【具體實(shí)施方式】
[0042]下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。
[0043]在嵌入式虛擬化環(huán)境中,相比于x86環(huán)境下CPU資源更為寶貴,網(wǎng)絡(luò)I/O頻繁時(shí)客戶機(jī)和宿主機(jī)的上下文切換消耗了大量的CPU資源,因此本發(fā)明借鑒了網(wǎng)卡中斷節(jié)制技術(shù),對(duì)Virt1的前端驅(qū)動(dòng)程序進(jìn)行了改進(jìn),客戶機(jī)在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)I/O時(shí)并不立刻將控制權(quán)移交給宿主機(jī),而是將數(shù)據(jù)緩存到隊(duì)列里,經(jīng)過(guò)一定的時(shí)間后再進(jìn)行上下文切換,通知宿主機(jī)從緩存隊(duì)列獲取數(shù)據(jù)。引入延遲機(jī)制的Virt1網(wǎng)絡(luò)虛擬化工作原理如圖6所示。
[0044]前端驅(qū)動(dòng)程序被修改后的Virt1網(wǎng)絡(luò)虛擬化工作步驟如下:
[0045]步驟I):當(dāng)客戶機(jī)發(fā)送數(shù)據(jù)包時(shí),客戶機(jī)kernel調(diào)用Virt1前端驅(qū)動(dòng)程序?qū)?shù)據(jù)寫(xiě)在vring隊(duì)列;其中,客戶機(jī)kernel,是指:在物理機(jī)上運(yùn)行的虛擬機(jī)的操作系統(tǒng)的內(nèi)核,由操作系統(tǒng)中用于管理存儲(chǔ)器、文件、外設(shè)和系統(tǒng)資源的那些部分組成。
[0046]步驟2):判斷計(jì)時(shí)器是否啟動(dòng),若已啟動(dòng),則跳轉(zhuǎn)到步驟⑷;若沒(méi)開(kāi)始計(jì)時(shí),則啟動(dòng)計(jì)時(shí)器。
[0047]步驟3):計(jì)時(shí)器的計(jì)時(shí)時(shí)間結(jié)束后,客戶機(jī)執(zhí)行hypercall通知宿主機(jī),客戶機(jī)切換到虛擬機(jī)監(jiān)控程序,虛擬機(jī)監(jiān)控程序從vring隊(duì)列取出數(shù)據(jù),處理完畢后將結(jié)果添加到vring隊(duì)列并發(fā)送中斷給客戶機(jī),其中,hypercall是指超級(jí)調(diào)用,其只能由內(nèi)核來(lái)調(diào)用,而應(yīng)用程序是無(wú)法直接調(diào)用的。
[0048]步驟4):此次調(diào)用結(jié)束。
[0049]這樣在時(shí)鐘控制的時(shí)間間隔內(nèi),多次網(wǎng)絡(luò)I/O請(qǐng)求被聚合成一次請(qǐng)求,減少了客戶機(jī)與虛擬機(jī)監(jiān)控程序上下文切換的次數(shù),降低了 CPU開(kāi)銷(xiāo)。
[0050]為使本發(fā)明的目的、技術(shù)方案和有點(diǎn)更加清楚,下面將結(jié)合附圖及一個(gè)具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0051]圖6-8為本發(fā)明的一個(gè)具體實(shí)施例,其中:
[0052]在本實(shí)施例中,發(fā)明人使用了配有Exynos 5250處理器(雙核L 7GHz,CortexA15CPU),800MHz、2GB DDR3 內(nèi)存的 Samsung chromebook 筆記本電腦,系統(tǒng)采用 12.04 版本的Ubuntu,網(wǎng)絡(luò)性能測(cè)試工具采用netperf,運(yùn)行6個(gè)虛擬機(jī),分別進(jìn)行批量TCP、UDP數(shù)據(jù)傳輸測(cè)試。由于內(nèi)存的限制,當(dāng)虛擬機(jī)的數(shù)量超過(guò)6個(gè)時(shí),宿主機(jī)會(huì)自動(dòng)關(guān)閉過(guò)多的虛擬機(jī),所以這里發(fā)明人只運(yùn)行6個(gè)虛擬機(jī)。
[0053]該具體實(shí)施例中,改進(jìn)后的VirtlO-net的虛擬化工作步驟如下:
[0054]步驟1:設(shè)置Virt1前端驅(qū)動(dòng)程序中計(jì)時(shí)器開(kāi)始計(jì)時(shí)時(shí)間,用于確定在后續(xù)步驟中客戶機(jī)將控制權(quán)移交給宿主機(jī)的時(shí)間;
[0055]步驟2:運(yùn)行的6個(gè)虛擬機(jī)各自發(fā)送TCP (UDP)數(shù)據(jù)包;
[0056]步驟3:6個(gè)虛擬機(jī)的各自的虛擬機(jī)kernel調(diào)用Virt1前端驅(qū)動(dòng)程序,將數(shù)據(jù)寫(xiě)在vring隊(duì)列;其中,虛擬機(jī)kernel,是指:虛擬機(jī)中的操作系統(tǒng)的內(nèi)核,由操作系統(tǒng)中用于管理存儲(chǔ)器、文件、外設(shè)和系統(tǒng)資源的那些部分組成;
[0057]步驟4:判斷步驟I中的計(jì)時(shí)器是否啟動(dòng),若已啟動(dòng)則跳轉(zhuǎn)到步驟6,若沒(méi)開(kāi)始計(jì)時(shí),則啟動(dòng)計(jì)時(shí)器;
[0058]步驟5:計(jì)時(shí)時(shí)間結(jié)束后,6個(gè)虛擬機(jī)執(zhí)行hypercall通知宿主機(jī);其中,計(jì)時(shí)時(shí)間是指設(shè)置的延遲時(shí)間,即客戶機(jī)在進(jìn)行網(wǎng)絡(luò)I/O時(shí),沒(méi)有立即將控制權(quán)移交給宿主機(jī),而是延遲了一段的時(shí)間;
[0059]步驟6:步驟2中的6個(gè)虛擬機(jī)切換到虛擬機(jī)監(jiān)控程序,虛擬機(jī)監(jiān)控程序從vring隊(duì)列取出數(shù)據(jù),處理完畢后將結(jié)果添加到vring隊(duì)列并發(fā)送中斷給客戶機(jī);
[0060]步驟7:此次調(diào)用結(jié)束。
[0061]圖7為傳統(tǒng)VirtlO-net在不同數(shù)量虛擬機(jī)情況下,網(wǎng)絡(luò)的吞吐量。橫軸為虛擬機(jī)的個(gè)數(shù),豎軸是網(wǎng)絡(luò)吞吐量(MB/s)??梢钥吹?,當(dāng)虛擬機(jī)的個(gè)數(shù)為6時(shí),網(wǎng)絡(luò)的吞吐量分別大約為 400MB/s (UDP),140MB/s (TCP)。
[0062]圖8為改進(jìn)的VirtlO-net在6臺(tái)虛擬機(jī)情況下,延遲時(shí)間在O到30毫秒的情況下的網(wǎng)絡(luò)吞吐量。橫軸是延遲時(shí)間,單位為毫秒;豎軸是網(wǎng)絡(luò)吞吐量(MB/s)??梢钥闯觯陀孟嗤瑓?shù)的傳統(tǒng)VirtlO-net相比,改進(jìn)后的Virt10_ne將延遲設(shè)置為3到1ms時(shí)網(wǎng)絡(luò)吞吐量有最大3倍以上的提升,這是因?yàn)橥ㄟ^(guò)延遲kick操作,減少VM Exit數(shù)量,提高了 CPU的利用效率。
[0063]以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。
【主權(quán)項(xiàng)】
1.一種嵌入式網(wǎng)絡(luò)虛擬化環(huán)境中Virt1網(wǎng)絡(luò)虛擬化工作方法,其特征在于,針對(duì)Virt1的前端驅(qū)動(dòng)程序,對(duì)Virt1網(wǎng)絡(luò)引入延遲機(jī)制,使客戶機(jī)在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)I/O時(shí)并不立刻將控制權(quán)移交給宿主機(jī),而是將數(shù)據(jù)緩存到隊(duì)列里,經(jīng)過(guò)一定的時(shí)間后再進(jìn)行上下文切換,通知宿主機(jī)從緩存隊(duì)列獲取數(shù)據(jù)。
2.一種嵌入式網(wǎng)絡(luò)虛擬化環(huán)境中Virt1網(wǎng)絡(luò)虛擬化工作方法,其特征在于,包括如下步驟: 步驟O:設(shè)置Virt1前端驅(qū)動(dòng)程序中計(jì)時(shí)器的計(jì)時(shí)時(shí)間; 步驟1:當(dāng)客戶機(jī)發(fā)送數(shù)據(jù)包時(shí),客戶機(jī)kernel調(diào)用Virt1前端驅(qū)動(dòng)程序?qū)?shù)據(jù)寫(xiě)在vring隊(duì)列; 步驟2:判斷計(jì)時(shí)器是否已啟動(dòng),若已啟動(dòng)開(kāi)始計(jì)時(shí),則跳轉(zhuǎn)到步驟4 ;若尚未開(kāi)始計(jì)時(shí),則啟動(dòng)計(jì)時(shí)器,進(jìn)入步驟3 ; 步驟3:計(jì)時(shí)器的計(jì)時(shí)時(shí)間結(jié)束后,客戶機(jī)執(zhí)行超級(jí)調(diào)用hypercall通知宿主機(jī),客戶機(jī)切換到虛擬機(jī)監(jiān)控程序,虛擬機(jī)監(jiān)控程序從vring隊(duì)列取出數(shù)據(jù),處理完畢后將結(jié)果添加到vring隊(duì)列并發(fā)送中斷給客戶機(jī); 步驟4:此次調(diào)用結(jié)束。
【專(zhuān)利摘要】本發(fā)明提供了一種嵌入式網(wǎng)絡(luò)虛擬化環(huán)境中VirtIO網(wǎng)絡(luò)虛擬化工作方法,其針對(duì)VirtIO的前端驅(qū)動(dòng)程序,對(duì)VirtIO網(wǎng)絡(luò)引入延遲機(jī)制,使客戶機(jī)在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)I/O時(shí)并不立刻將控制權(quán)移交給宿主機(jī),而是將數(shù)據(jù)緩存到隊(duì)列里,經(jīng)過(guò)一定的時(shí)間后再進(jìn)行上下文切換,通知宿主機(jī)從緩存隊(duì)列獲取數(shù)據(jù)。本發(fā)明顯著地減少了客戶機(jī)和宿主機(jī)上下文切換的次數(shù),節(jié)省了大量的CPU資源以處理更多的網(wǎng)絡(luò)I/O。通過(guò)實(shí)驗(yàn)可以發(fā)現(xiàn),在設(shè)置一定的時(shí)間延遲內(nèi),網(wǎng)絡(luò)吞吐量最大有3倍以上的提升。
【IPC分類(lèi)】H04L12-24, G06F9-455, H04L29-06
【公開(kāi)號(hào)】CN104618158
【申請(qǐng)?zhí)枴緾N201510044201
【發(fā)明人】姚建國(guó), 程書(shū)欣, 徐鑫, 管海兵
【申請(qǐng)人】上海交通大學(xué)
【公開(kāi)日】2015年5月13日
【申請(qǐng)日】2015年1月28日
當(dāng)前第2頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1