數(shù)據(jù)包聚合算法提高云計(jì)算環(huán)境下的網(wǎng)絡(luò)I/O虛擬化
發(fā)布時(shí)間:2020-12-08 12:33
通過(guò)介紹云計(jì)算現(xiàn)有環(huán)境下網(wǎng)絡(luò)I/O虛擬化的架構(gòu)模式,提出一種新的聚合方式來(lái)提高云計(jì)算環(huán)境下網(wǎng)絡(luò)I/O虛擬化的效率。首先通過(guò)分析云計(jì)算環(huán)境下現(xiàn)有網(wǎng)絡(luò)I/O虛擬化的過(guò)程,進(jìn)行云環(huán)境下的聯(lián)網(wǎng)性能評(píng)估,并在軟件和硬件兩方面,得出其網(wǎng)絡(luò)I/O虛擬化的瓶頸。然后,通過(guò)提出基于I/O虛擬化的數(shù)據(jù)包聚合算法,進(jìn)而大幅度提升云計(jì)算環(huán)境下網(wǎng)絡(luò)I/O虛擬化的資源利用率,CPU利用率和內(nèi)存利用率。最后通過(guò)包聚合標(biāo)注工具,以矩陣的形式,證明該方法的效率。
【文章來(lái)源】:計(jì)算機(jī)應(yīng)用與軟件. 2016年01期 第127-130+133頁(yè)
【文章頁(yè)數(shù)】:5 頁(yè)
【部分圖文】:
基于I/O虛擬化模型的驅(qū)動(dòng)域2聯(lián)網(wǎng)性能評(píng)估
行數(shù)據(jù)的開(kāi)始。最后的15個(gè)周期代表預(yù)充電延時(shí):內(nèi)存不得不等待很長(zhǎng)時(shí)間知道再次訪問(wèn)時(shí)已經(jīng)被初始化。2.4軟件瓶頸分析為了克服由于內(nèi)存延時(shí)帶來(lái)的瓶頸,我們發(fā)現(xiàn)軟件組件最有助于內(nèi)存處理來(lái)減少內(nèi)存延時(shí)。因此,針對(duì)一個(gè)數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑,我們把軟件組件分為五大函數(shù)類(lèi):e1000:物理設(shè)備驅(qū)動(dòng)。橋:驅(qū)動(dòng)域內(nèi)數(shù)據(jù)包多路復(fù)用和分解函數(shù)的集合。I/O:通過(guò)事件通道和內(nèi)存,驅(qū)動(dòng)域和虛擬機(jī)之間的傳輸處理數(shù)據(jù)包的函數(shù)。Xen_D0:管理程序和Domain0時(shí)序安排的函數(shù)和管理虛機(jī)并保護(hù)對(duì)內(nèi)存的訪問(wèn)。VM:已經(jīng)正常運(yùn)轉(zhuǎn)的虛擬機(jī)。圖2一個(gè)虛機(jī)內(nèi)的各函數(shù)類(lèi)的內(nèi)存處理圖2描述了隨著速率的增加,以上五類(lèi)各自內(nèi)存處理的情況。我們首先可以看到當(dāng)輸入速率超過(guò)80Kp/s時(shí),完成內(nèi)存處理的總數(shù)停滯在15MT/s。根據(jù)前面瓶頸分析過(guò)程,我們可以發(fā)現(xiàn)這個(gè)結(jié)果證明了內(nèi)存延時(shí)作為瓶頸的問(wèn)題。再進(jìn)一步說(shuō),我們可以發(fā)現(xiàn)超過(guò)50%的內(nèi)存處理都是通過(guò)I/O函數(shù)來(lái)實(shí)現(xiàn)的。為了使網(wǎng)絡(luò)能夠更快地提高輸入速率,我們深入研究下這些函數(shù)。這些函數(shù)包含了轉(zhuǎn)發(fā)操作。這些操作很可能需要最多的內(nèi)存處理。表1列出了這些函數(shù)。我們發(fā)現(xiàn)以下列出的函數(shù)產(chǎn)生了67.59%的內(nèi)存處理,并且只有物理驅(qū)動(dòng)(Phycial_Driver)需要喚醒在驅(qū)動(dòng)域與虛擬機(jī)間傳輸數(shù)據(jù)的I/O通信。它們分表代表了驅(qū)動(dòng)域所要求的授權(quán)來(lái)訪問(wèn)虛擬機(jī)的內(nèi)存頁(yè)(gnttab_copy,gnttab_end_foreign),復(fù)制數(shù)據(jù)包過(guò)程中的緩存分配(alloc_skb),復(fù)制數(shù)據(jù)包(memcpy),并通知netfront。其中的
forCinC_ListdoifC.D_MAC=P.D_MACthenifC.size+P.size>VthenSend(C)Create_C(P)elseAdd_offset(P.size)Add_data(P.data)C.size<-C.size+P.size+2endifelseCreate_C(P)endifendforendwhile算法2Create_C(P)函數(shù)C.MAC<-P.MACC.size<-P.size+2C.Timeout<-TAdd_offset(P.size)Add_data(P.data)算法3包提取whileC≠NulldowhileC.size>0doOffset<-Get_offsetP<-Extract(Offset)Send_upperlayer(P)endwhileendwhile3.2聚合性能評(píng)估3.2.1情形圖3顯示了在以聚合為基礎(chǔ)的系統(tǒng),一個(gè)數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑。隨著數(shù)據(jù)包從NIC的接收(Polldevice),然后數(shù)據(jù)包就被聚合(進(jìn)容器container),然后發(fā)送給連接到虛擬網(wǎng)卡的Guest域(發(fā)送模塊ToDevice),數(shù)據(jù)包在Guest域被提取(Unloder)。圖3數(shù)據(jù)包轉(zhuǎn)發(fā)路徑3.2.2延時(shí)和抖動(dòng)提高吞吐量很明顯能夠減少數(shù)據(jù)包丟失率。在輸入速率達(dá)到80Kp/s之時(shí),丟失率會(huì)超過(guò)90%。在3.2.1節(jié)所述的情形下,我們?cè)u(píng)估了數(shù)據(jù)包到達(dá)網(wǎng)絡(luò)設(shè)備時(shí)與離開(kāi)系統(tǒng)時(shí)的時(shí)間差。我們描繪了數(shù)據(jù)包的平均延時(shí)并讓輸入速率函數(shù)作為其最大的抖動(dòng)值。這種抖動(dòng)值的計(jì)算方法是通過(guò)RFC1889中提到的方法計(jì)算的。然而這種抖動(dòng)值也能很好地展示出這種聚合系統(tǒng)在延時(shí)變化的影響。相對(duì)于同一個(gè)容器中的兩個(gè)相鄰的數(shù)據(jù)包而言,一個(gè)容器的最后一個(gè)包和來(lái)自下一個(gè)容器的第一個(gè)包的延時(shí)是很高的。很明顯,大容器能夠獲得很高的吞吐量,然而卻會(huì)以更大的超時(shí)所帶來(lái)的延時(shí)作為代價(jià)。3.2.3內(nèi)存和CPU消耗圖4、圖5和圖6、圖7分別借助接收與轉(zhuǎn)發(fā)數(shù)據(jù)包的狀態(tài)與輸入速率與內(nèi)存處理的狀態(tài),來(lái)顯示非聚合系統(tǒng)與聚合系統(tǒng)的內(nèi)存狀態(tài)、CPU狀態(tài)。我們發(fā)現(xiàn),當(dāng)接收/轉(zhuǎn)發(fā)吞吐量大幅度增加
【參考文獻(xiàn)】:
期刊論文
[1]MR-IOV:下一代數(shù)據(jù)中心I/O虛擬化技術(shù)[J]. 喻波,胡懷湘. 計(jì)算機(jī)技術(shù)與發(fā)展. 2013(10)
[2]基于云計(jì)算的虛擬化技術(shù)原理與應(yīng)用分析[J]. 玄文啟. 中國(guó)科技信息. 2012(23)
[3]云計(jì)算環(huán)境下分布式緩存技術(shù)的現(xiàn)狀與挑戰(zhàn)[J]. 秦秀磊,張文博,魏峻,王偉,鐘華,黃濤. 軟件學(xué)報(bào). 2013(01)
本文編號(hào):2905092
【文章來(lái)源】:計(jì)算機(jī)應(yīng)用與軟件. 2016年01期 第127-130+133頁(yè)
【文章頁(yè)數(shù)】:5 頁(yè)
【部分圖文】:
基于I/O虛擬化模型的驅(qū)動(dòng)域2聯(lián)網(wǎng)性能評(píng)估
行數(shù)據(jù)的開(kāi)始。最后的15個(gè)周期代表預(yù)充電延時(shí):內(nèi)存不得不等待很長(zhǎng)時(shí)間知道再次訪問(wèn)時(shí)已經(jīng)被初始化。2.4軟件瓶頸分析為了克服由于內(nèi)存延時(shí)帶來(lái)的瓶頸,我們發(fā)現(xiàn)軟件組件最有助于內(nèi)存處理來(lái)減少內(nèi)存延時(shí)。因此,針對(duì)一個(gè)數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑,我們把軟件組件分為五大函數(shù)類(lèi):e1000:物理設(shè)備驅(qū)動(dòng)。橋:驅(qū)動(dòng)域內(nèi)數(shù)據(jù)包多路復(fù)用和分解函數(shù)的集合。I/O:通過(guò)事件通道和內(nèi)存,驅(qū)動(dòng)域和虛擬機(jī)之間的傳輸處理數(shù)據(jù)包的函數(shù)。Xen_D0:管理程序和Domain0時(shí)序安排的函數(shù)和管理虛機(jī)并保護(hù)對(duì)內(nèi)存的訪問(wèn)。VM:已經(jīng)正常運(yùn)轉(zhuǎn)的虛擬機(jī)。圖2一個(gè)虛機(jī)內(nèi)的各函數(shù)類(lèi)的內(nèi)存處理圖2描述了隨著速率的增加,以上五類(lèi)各自內(nèi)存處理的情況。我們首先可以看到當(dāng)輸入速率超過(guò)80Kp/s時(shí),完成內(nèi)存處理的總數(shù)停滯在15MT/s。根據(jù)前面瓶頸分析過(guò)程,我們可以發(fā)現(xiàn)這個(gè)結(jié)果證明了內(nèi)存延時(shí)作為瓶頸的問(wèn)題。再進(jìn)一步說(shuō),我們可以發(fā)現(xiàn)超過(guò)50%的內(nèi)存處理都是通過(guò)I/O函數(shù)來(lái)實(shí)現(xiàn)的。為了使網(wǎng)絡(luò)能夠更快地提高輸入速率,我們深入研究下這些函數(shù)。這些函數(shù)包含了轉(zhuǎn)發(fā)操作。這些操作很可能需要最多的內(nèi)存處理。表1列出了這些函數(shù)。我們發(fā)現(xiàn)以下列出的函數(shù)產(chǎn)生了67.59%的內(nèi)存處理,并且只有物理驅(qū)動(dòng)(Phycial_Driver)需要喚醒在驅(qū)動(dòng)域與虛擬機(jī)間傳輸數(shù)據(jù)的I/O通信。它們分表代表了驅(qū)動(dòng)域所要求的授權(quán)來(lái)訪問(wèn)虛擬機(jī)的內(nèi)存頁(yè)(gnttab_copy,gnttab_end_foreign),復(fù)制數(shù)據(jù)包過(guò)程中的緩存分配(alloc_skb),復(fù)制數(shù)據(jù)包(memcpy),并通知netfront。其中的
forCinC_ListdoifC.D_MAC=P.D_MACthenifC.size+P.size>VthenSend(C)Create_C(P)elseAdd_offset(P.size)Add_data(P.data)C.size<-C.size+P.size+2endifelseCreate_C(P)endifendforendwhile算法2Create_C(P)函數(shù)C.MAC<-P.MACC.size<-P.size+2C.Timeout<-TAdd_offset(P.size)Add_data(P.data)算法3包提取whileC≠NulldowhileC.size>0doOffset<-Get_offsetP<-Extract(Offset)Send_upperlayer(P)endwhileendwhile3.2聚合性能評(píng)估3.2.1情形圖3顯示了在以聚合為基礎(chǔ)的系統(tǒng),一個(gè)數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑。隨著數(shù)據(jù)包從NIC的接收(Polldevice),然后數(shù)據(jù)包就被聚合(進(jìn)容器container),然后發(fā)送給連接到虛擬網(wǎng)卡的Guest域(發(fā)送模塊ToDevice),數(shù)據(jù)包在Guest域被提取(Unloder)。圖3數(shù)據(jù)包轉(zhuǎn)發(fā)路徑3.2.2延時(shí)和抖動(dòng)提高吞吐量很明顯能夠減少數(shù)據(jù)包丟失率。在輸入速率達(dá)到80Kp/s之時(shí),丟失率會(huì)超過(guò)90%。在3.2.1節(jié)所述的情形下,我們?cè)u(píng)估了數(shù)據(jù)包到達(dá)網(wǎng)絡(luò)設(shè)備時(shí)與離開(kāi)系統(tǒng)時(shí)的時(shí)間差。我們描繪了數(shù)據(jù)包的平均延時(shí)并讓輸入速率函數(shù)作為其最大的抖動(dòng)值。這種抖動(dòng)值的計(jì)算方法是通過(guò)RFC1889中提到的方法計(jì)算的。然而這種抖動(dòng)值也能很好地展示出這種聚合系統(tǒng)在延時(shí)變化的影響。相對(duì)于同一個(gè)容器中的兩個(gè)相鄰的數(shù)據(jù)包而言,一個(gè)容器的最后一個(gè)包和來(lái)自下一個(gè)容器的第一個(gè)包的延時(shí)是很高的。很明顯,大容器能夠獲得很高的吞吐量,然而卻會(huì)以更大的超時(shí)所帶來(lái)的延時(shí)作為代價(jià)。3.2.3內(nèi)存和CPU消耗圖4、圖5和圖6、圖7分別借助接收與轉(zhuǎn)發(fā)數(shù)據(jù)包的狀態(tài)與輸入速率與內(nèi)存處理的狀態(tài),來(lái)顯示非聚合系統(tǒng)與聚合系統(tǒng)的內(nèi)存狀態(tài)、CPU狀態(tài)。我們發(fā)現(xiàn),當(dāng)接收/轉(zhuǎn)發(fā)吞吐量大幅度增加
【參考文獻(xiàn)】:
期刊論文
[1]MR-IOV:下一代數(shù)據(jù)中心I/O虛擬化技術(shù)[J]. 喻波,胡懷湘. 計(jì)算機(jī)技術(shù)與發(fā)展. 2013(10)
[2]基于云計(jì)算的虛擬化技術(shù)原理與應(yīng)用分析[J]. 玄文啟. 中國(guó)科技信息. 2012(23)
[3]云計(jì)算環(huán)境下分布式緩存技術(shù)的現(xiàn)狀與挑戰(zhàn)[J]. 秦秀磊,張文博,魏峻,王偉,鐘華,黃濤. 軟件學(xué)報(bào). 2013(01)
本文編號(hào):2905092
本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/2905092.html
最近更新
教材專(zhuān)著