• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向用戶態(tài)Click的I/O優(yōu)化框架的設(shè)計與實現(xiàn)*

      2016-12-19 01:12:25盧澤新張曉哲馬世聰
      計算機與生活 2016年12期
      關(guān)鍵詞:輪詢拷貝網(wǎng)卡

      劉 松,盧澤新,張曉哲,馬世聰

      國防科學技術(shù)大學 計算機學院,長沙 410073

      面向用戶態(tài)Click的I/O優(yōu)化框架的設(shè)計與實現(xiàn)*

      劉 松+,盧澤新,張曉哲,馬世聰

      國防科學技術(shù)大學 計算機學院,長沙 410073

      LIU Song,LU Zexin,ZHANG Xiaozhe,et al.Design and implementation of optimization I/O framework for Click modular router in user level.Journal of Frontiers of Computer Science and Technology,2016,10(12):1693-1700.

      軟件路由器在現(xiàn)代網(wǎng)絡(luò)的發(fā)展中發(fā)揮著越來越重要的作用,而Click是具有良好模塊化設(shè)計的軟件路由器,為開發(fā)和驗證新的路由協(xié)議等應(yīng)用提供了很好的軟件平臺。由于實現(xiàn)機制問題,用戶態(tài)Click的I/O性能嚴重限制報文處理能力,影響以Click軟件路由器為平臺的系統(tǒng)的整體性能。針對現(xiàn)有Click用戶態(tài)I/O機制的不足,提出了一種面向用戶態(tài)Click的I/O優(yōu)化框架,通過采用輪詢技術(shù)、零拷貝技術(shù)和報文預取技術(shù)提升了I/O性能。實驗結(jié)果表明:優(yōu)化后的用戶態(tài)Click的I/O性能提升了121倍。

      軟件路由器;Click;I/O;輪詢;零拷貝;報文預取

      1 引言

      隨著新的網(wǎng)絡(luò)協(xié)議以及新的網(wǎng)絡(luò)業(yè)務(wù)的誕生,需要對現(xiàn)有的路由器進行升級或更換。作為網(wǎng)絡(luò)服務(wù)提供商而言,更換路由器無疑代表成本的增加,因此希望通過升級原有的設(shè)備來滿足日益增長的需求。這就要求路由器能提供靈活定制、可編程的能力。傳統(tǒng)的硬件路由器的功能是由設(shè)備廠商定制,不允許第三方進行任何修改;而軟件路由器可以提供快速開發(fā)出新的功能和需求的包處理,降低了開發(fā)周期和運營成本。

      在典型的軟件路由器中,Click[1]Click modular router)以其良好的可擴展性得到了廣泛的應(yīng)用,為新協(xié)議的開發(fā)和驗證以及軟件路由器的快速搭建提供了一個優(yōu)秀的軟件平臺。Click是一個模塊化的軟件路由器,采用了面向?qū)ο蟮脑O(shè)計方式,把IP分組轉(zhuǎn)發(fā)過程抽象為一系列組件。Click提供了一種靈活的可擴展的數(shù)據(jù)平面軟件開發(fā)架構(gòu),只需要添加組件即可對軟件路由器的功能進行擴展,即通過將路由器功能劃分為不同的功能組件,然后通過實現(xiàn)新的組件或組合已有的組件就可以快速地實現(xiàn)新的網(wǎng)絡(luò)功能,為軟件路由器的開發(fā)提供了非常好的可擴展的數(shù)據(jù)平面的軟件開發(fā)架構(gòu)。Click的高度可擴展性等優(yōu)良特性也使得它受到越來越廣泛關(guān)注,并實現(xiàn)了許多優(yōu)秀的應(yīng)用原型,比如未來互聯(lián)網(wǎng)架構(gòu)[2]、冗余流量消除系統(tǒng)[3]、可擴展的中間盒平臺[4]和集群式高性能軟件路由器[5]等。

      盡管Click的靈活設(shè)計能滿足不同網(wǎng)絡(luò)業(yè)務(wù)的設(shè)計需求,但是它的較低轉(zhuǎn)發(fā)性能無法滿足大多數(shù)業(yè)務(wù)的性能指標。相關(guān)研究工作指出,用戶態(tài)的Click的I/O(Input/Output)框架是限制其性能的關(guān)鍵因素。如何結(jié)合Click的I/O框架與現(xiàn)有的硬件平臺來進一步提升它的報文處理能力是當前研究的熱點和難點。通過分析Click的實現(xiàn)機制,制約I/O性能的因素主要有3個:(1)采用系統(tǒng)中斷方式接收/發(fā)送報文;(2)報文在內(nèi)核態(tài)與用戶態(tài)間的多次拷貝開銷;(3)緩存競爭和緩存缺失。

      本文提出了一種面向用戶態(tài)Click的I/O優(yōu)化框架,用于解決Click轉(zhuǎn)發(fā)性能較低的問題。本文I/O優(yōu)化框架采用了輪詢技術(shù)、零拷貝技術(shù)和預取技術(shù)3類技術(shù):輪詢技術(shù)避免了原生態(tài)Click以中斷方式接收/發(fā)送報文,極大地提升了它的報文處理能力;零拷貝技術(shù)和預取技術(shù)優(yōu)化了報文處理路徑的I/O開銷,降低了報文的拷貝次數(shù)以及訪存的次數(shù)。通過實驗結(jié)果證明:優(yōu)化I/O框架后的Click的轉(zhuǎn)發(fā)性能為11 400 Kp/s,為原生用戶態(tài)Click的121倍。

      2 相關(guān)工作

      目前,針對Click的I/O框架限制其報文處理能力的問題已普遍引起研究人員的重視,并提出了一系列的解決方案。比如,文獻[6]利用批處理方式優(yōu)化I/O框架,需要對報文處理業(yè)務(wù)進行重設(shè)計,并且報文的處理路徑不同也影響到批處理方式帶來的性能提升。RouteBriceks[5]主要采用輪詢方式代替?zhèn)鹘y(tǒng)硬件的中斷方式,以及采用批處理方式提升數(shù)據(jù)處理的并行性,但其主要解決內(nèi)核態(tài)Click的I/O框架問題。PacketShader[7]通過修改內(nèi)核使Linux系統(tǒng)更好地支持批處理方式,采用GPU(graphic processing unit)加速報文的處理能力,因此它在移植性方面存在不足。此外,一些方案[8-11]采用硬件加速的方式來解決Click的I/O問題。

      近年來針對用戶態(tài)的高性能報文I/O的優(yōu)化框架也存在較多研究,比如Packet_mmap[12]、Netmap[13]、PF_RING[14]、DPDK(date plane development kit)[15]等,文獻[16-17]對于多種框架進行了性能的測試和分析,其中PF_RING與DPDK的用戶態(tài)I/O性能表現(xiàn)較好,但PF_RING中報文存儲在內(nèi)核態(tài)中,與本文的設(shè)計理念有所不同,因此最終采用DPDK實現(xiàn)并驗證本文的設(shè)計思想。

      雖然已有Click的I/O優(yōu)化方案能有效地提升報文處理能力,但采用批處理方式和內(nèi)核態(tài)的Click優(yōu)化方式降低了系統(tǒng)的可移植性。本文主要研究如何在X86服務(wù)器上優(yōu)化用戶態(tài)Click的I/O框架。

      3 關(guān)鍵技術(shù)的分析與解決

      現(xiàn)有工作表明,造成Click用戶態(tài)I/O性能降低的原因主要包括三方面:

      (1)采用系統(tǒng)中斷方式收發(fā)報文。在標準的Linux內(nèi)核協(xié)議棧中,協(xié)議棧使用中斷的方式發(fā)送或者接收報文,原生用戶態(tài)Click使用libpcap從協(xié)議棧中獲取報文,當報文到達速率較高時,系統(tǒng)中斷的處理頻率會遠低于報文到達速率,引發(fā)丟包,影響包處理性能。

      (2)內(nèi)核態(tài)與用戶態(tài)之間的內(nèi)存拷貝開銷。由于內(nèi)核和用戶內(nèi)存空間的隔離,原生態(tài)的Click至少需要兩次報文拷貝才能完成一次的報文處理流程,由此而產(chǎn)生的開銷會大幅降低用戶態(tài)Click的性能。

      (3)緩存競爭和緩存缺失已經(jīng)成為影響通用服務(wù)器上運行軟件路由器性能的重要因素[18-19]。原生態(tài)的用戶態(tài)Click并不支持緩存的預取操作,給其I/O性能的提升造成了一定的瓶頸。

      針對上述問題,本文給出了用戶態(tài)Click的I/O優(yōu)化框架,如圖1所示,主要從以下三方面改進用戶態(tài)Click的I/O性能:

      Fig.1 Comparison of userlevel Click I/O two framework and optimzed framwork圖1 用戶態(tài)Click I/O框架與優(yōu)化框架對比

      (1)使用輪詢模式的驅(qū)動取代中斷模式的網(wǎng)卡驅(qū)動,網(wǎng)卡可以在不通知進程的情況下直接通過DMA(direct memory access)將報文送到內(nèi)存中,Click則使用輪詢CPU隊列的方式輪詢收發(fā)隊列中的報文,從而避免了頻繁的系統(tǒng)中斷。

      (2)使用零拷貝技術(shù),通過創(chuàng)建內(nèi)核態(tài)與用戶態(tài)之間的共享報文緩沖區(qū),將報文直接送入共享緩沖區(qū),避免了報文收發(fā)過程中的多次內(nèi)存拷貝,實現(xiàn)了報文零拷貝的收發(fā)。

      (3)通過報文預取技術(shù),將需要發(fā)送的報文提前讀取到Cache中,減少了內(nèi)存訪問造成的I/O損失。

      3.1 設(shè)備輪詢技術(shù)

      Fig.2 Comparison of interruption and poll mode圖2 中斷方式和輪詢方式的對比

      用戶態(tài)的Click采用了系統(tǒng)中斷的方式收發(fā)報文,嚴重影響了系統(tǒng)整體的轉(zhuǎn)發(fā)性能。如圖2(a)所示,用戶態(tài)的Click收取報文的工作流程為:首先,網(wǎng)絡(luò)協(xié)議棧從網(wǎng)卡中以中斷的方式獲取報文;然后,Click組件再從網(wǎng)絡(luò)協(xié)議棧中使用Pcap等方式獲取原始報文。在高速報文處理過程中,頻繁地收發(fā)報文特別是小報文引起的大量中斷會嚴重影響I/O的速度,從而給整個系統(tǒng)帶來性能瓶頸。調(diào)研發(fā)現(xiàn),輪詢驅(qū)動收取報文可以解決大量中斷造成的轉(zhuǎn)發(fā)性能低下的缺陷。工作在內(nèi)核態(tài)的Click通過修改系統(tǒng)內(nèi)核驅(qū)動可以支持輪詢模式收發(fā)報文,但內(nèi)核態(tài)工作的輪詢驅(qū)動收發(fā)報文需要頻繁的上下文切換且修改內(nèi)核驅(qū)動,會給系統(tǒng)的部屬帶來不必要的時間成本開銷。因此,將輪詢驅(qū)動技術(shù)引入到用戶層,既消除了頻繁中斷帶來的不必要開銷,也減少了內(nèi)核態(tài)和用戶態(tài)上下文切換造成的性能損失。

      根據(jù)Click軟件路由器本身的特點,設(shè)備輪詢分為兩層輪詢結(jié)構(gòu):第一層,在底層采用Intel DPDK做驅(qū)動支持,輪詢各個網(wǎng)卡的多隊列將報文直接獲取到用戶態(tài)形成DPDK隊列。第二層,采用輪詢CPU隊列的方式,從DPDK隊列中輪詢收發(fā)報文。如圖2(b)所示,在用戶態(tài)使用DPDK庫,借助UIO驅(qū)動將網(wǎng)卡驅(qū)動放到用戶態(tài)工作,通過DPDK按照一定的時間周期按次序輪詢訪問每個網(wǎng)卡接口的隊列,將報文放入DPDK隊列中;在Click組件中采用輪詢CPU隊列技術(shù)訪問每個DPDK接收隊列,將報文獲取到用戶態(tài)內(nèi)存中;經(jīng)過Click組件的要求處理后,再通過相反的過程將報文送到網(wǎng)卡隊列中完成發(fā)送過程,從而消除了高速收發(fā)報文中因為中斷所引起的性能瓶頸。本節(jié)所提出的設(shè)備輪詢技術(shù)是基于CPU隊列的輪詢,查詢的對象是DPDK的收發(fā)隊列。DPDK庫在本設(shè)計中充當了底層的驅(qū)動庫,完成從網(wǎng)卡到用戶態(tài)報文的收發(fā)工作。

      3.2 零拷貝技術(shù)

      由于內(nèi)核和用戶內(nèi)存空間的隔離,原生態(tài)的Click至少需要兩次報文拷貝才能完成一次的報文處理流程,由此而產(chǎn)生的開銷會大幅降低用戶態(tài)Click的性能。如圖1(a)所示,在原生態(tài)的Click接收報文的過程中,報文從網(wǎng)卡到內(nèi)存的傳輸需要經(jīng)歷兩次拷貝工作,即報文從網(wǎng)卡隊列到網(wǎng)絡(luò)協(xié)議棧的拷貝和從網(wǎng)絡(luò)協(xié)議棧再到內(nèi)存的拷貝。報文傳輸過程中的兩次報文拷貝工作從網(wǎng)卡收發(fā)報文操作是不可避免的,但可以通過減少從網(wǎng)卡隊列中已經(jīng)收取報文的情況下操作系統(tǒng)內(nèi)部進行多余的內(nèi)存拷貝工作,即從網(wǎng)卡直接獲取報文內(nèi)容到用戶態(tài)內(nèi)存,交給Click組件進行零拷貝的報文處理,減少Click用戶態(tài)原生方案中二次拷貝所帶來的I/O損失。由此,采用了如圖1(b)所示的設(shè)計方案,通過DMA技術(shù)直接從網(wǎng)卡中獲取報文到用戶態(tài)的內(nèi)存,然后在Click組件中使用零拷貝技術(shù)進行報文的操作處理。在實現(xiàn)過程中,借助于Intel DPDK進行實現(xiàn),在此開發(fā)套件中使用的報文存儲結(jié)構(gòu)與Click中原生的報文結(jié)構(gòu)有一定的差異,因此對必要的報文頭部信息進行提取,轉(zhuǎn)化為Click組件需要處理的報文結(jié)構(gòu),在保持必要信息量的情況下,避免了大量報文數(shù)據(jù)的拷貝,進而提高收發(fā)報文的I/O性能。

      3.3 報文預取技術(shù)

      緩存競爭和緩存缺失已經(jīng)成為影響通用服務(wù)器上運行軟件路由器性能的主要因素,原生態(tài)的Click用戶態(tài)并沒有相應(yīng)的解決方案。如果能夠在處理報文之前將其預取到Cache中,那么可以大大減少緩存競爭和緩存缺失所帶來的I/O性能的損失。為此,本文使用報文預取技術(shù)解決緩存競爭和緩存缺失的問題。在報文加入接收隊列時,做報文預取操作,提前將報文讀取到Cache中,在后續(xù)的報文處理過程中可以直接從緩存中獲取到報文的內(nèi)容,從而大幅度提高Cache的命中率,進而提高Click收發(fā)報文的I/O性能。為了提高報文預取的效率,對于報文的存儲方式也做了相應(yīng)的改進,使用大頁內(nèi)存技術(shù)進行內(nèi)存的存儲管理:首先大頁內(nèi)存不受虛擬內(nèi)存的管理影響,不會被替換出內(nèi)存,而普通的4 KB內(nèi)存頁,如果內(nèi)存不足可能會被虛擬內(nèi)存管理模塊替換;其次,對于同樣的內(nèi)存大小,大頁內(nèi)存產(chǎn)生的表項數(shù)目遠遠小于普通內(nèi)存頁。較少的表項一方面可以大大減少表項開銷,并且可以明顯減少沖突率,極大減少表項缺失導致的開銷,而表項缺失會嚴重影響訪存性能。對于共享內(nèi)存的管理一般會使用鎖來實現(xiàn),但是使用鎖不可避免地因為順序化的數(shù)據(jù)訪問和報文頭開銷增加而降低系統(tǒng)的性能。因此本設(shè)計采用無鎖環(huán)進行內(nèi)存的管理。

      4 設(shè)計與實現(xiàn)

      本文所提出的用戶態(tài)Click軟件優(yōu)化框架如圖3所示。該框架不依賴于諸如SR-IOV(single-root I/O virtualization)的硬件優(yōu)化方案,完全采用軟件方式實現(xiàn),既避免了原有的系統(tǒng)開銷,提高了系統(tǒng)性能,又可以充分利用用戶態(tài)Click的穩(wěn)定性高、易于擴展的優(yōu)勢,在可編程性和高性能方面取得了良好的平衡。

      Fig.3 Click I/O optimized framework in user level圖3 用戶態(tài)Click I/O優(yōu)化實現(xiàn)框架

      輪詢方式收發(fā)報文技術(shù)的實現(xiàn):在用戶態(tài)使用Intel DPDK數(shù)據(jù)層面開發(fā)套件中的輪詢驅(qū)動,從網(wǎng)卡中直接獲取報文到用戶層并形成報文的接收隊列,通過創(chuàng)建新的Click組件,在Click中使用輪詢CPU隊列的方式訪問DPDK中的報文接收隊列收取報文,并將報文存儲在用戶態(tài)的使用無鎖環(huán)管理的大頁內(nèi)存中。待Click處理完報文之后,Click組件再以輪詢CPU隊列的方式將報文按照必要的信息提交給指定的發(fā)送隊列,輪詢模式的驅(qū)動庫則會通過定時輪詢發(fā)送隊列的方式將報文發(fā)送到指定的網(wǎng)卡并釋放內(nèi)存空間,完成整個報文的收發(fā)操作。

      零拷貝技術(shù)的實現(xiàn):報文從網(wǎng)卡收取到用戶層之后,提取一定量的必要信息,比如數(shù)據(jù)長度、報文頭指針等,通過緩沖區(qū)管理庫的操作,生成Click內(nèi)部處理報文格式,以文件描述符的形式交給Click組件進行后續(xù)處理。完成指定的報文操作后,再通過緩沖區(qū)管理庫,根據(jù)報文的文件描述符及必要的附加信息將Click報文還原成DPDK中的內(nèi)部報文結(jié)構(gòu),并提交給發(fā)送隊列進行發(fā)送。整個報文的操作過程只進行了文件描述符的傳遞,實際報文數(shù)據(jù)沒有進行多余的拷貝工作。

      報文預取技術(shù)的實現(xiàn):Click組件進行報文處理主要通過任務(wù)隊列對報文進行操作,在處理一個報文的時候提前將下一個需要處理的報文的文件描述符以及對應(yīng)的數(shù)據(jù)從內(nèi)存中預取到Cache中,且在內(nèi)存管理中采用大頁內(nèi)存和無鎖環(huán),可以有效提高訪存能力,提高從內(nèi)存到Cache中的讀取速度。

      5 測試結(jié)果

      5.1 實驗環(huán)境

      本文的測試平臺采用了IBM的通用服務(wù)器進行測試,服務(wù)器配置:CPU為Intel?Xeon?CPU E5-2680V2@2.80 GHz;內(nèi)存為1 333 MHz,64 GB DDR3;網(wǎng)卡信息為Intel82599 10GbE網(wǎng)卡。服務(wù)器安裝并運行的操作系統(tǒng)為Centos6.3,系統(tǒng)內(nèi)核版本為Linuxkernel 2.6.32-358.el6.x86_64,采用的基礎(chǔ)代碼版本為Click 2.0.1和dpdk 1.6。測試儀器中采用了IXIAXM2網(wǎng)絡(luò)數(shù)據(jù)通信分析儀進行測試。

      5.2 實驗結(jié)果和分析

      實驗中,主要對單核、單線程、單接口的吞吐率、包轉(zhuǎn)發(fā)速率等報文轉(zhuǎn)發(fā)處理的I/O性能指標進行了測試。分別使用從64 Byte到1 514 Byte等不同長度的報文,通過網(wǎng)絡(luò)數(shù)據(jù)通信分析儀測試系統(tǒng)對本文所設(shè)計并實現(xiàn)的用戶態(tài)Click軟件路由器的I/O優(yōu)化框架進行了驗證。數(shù)據(jù)分析如下:

      (1)轉(zhuǎn)發(fā)能力結(jié)果與分析

      經(jīng)過實驗測試發(fā)現(xiàn),如圖4(a)所示,其中Native Click表示原生用戶態(tài)的Click,Click PollMode表示使用輪詢技術(shù)優(yōu)化后的用戶態(tài)Click,Click Optimization表示使用輪詢、零拷貝和緩存預取3種技術(shù)優(yōu)化后的用戶態(tài)Click,即本文所提出的優(yōu)化框架。結(jié)合表1中給出的不同報文下的包轉(zhuǎn)發(fā)速率可以看出,在用戶態(tài)運行Click的轉(zhuǎn)發(fā)能力非常低,對64 Byte轉(zhuǎn)發(fā)報文速度為94 Kp/s,在用戶態(tài)采用輪詢技術(shù)直接從網(wǎng)卡中收報文性能達到5 880 Kp/s,性能提升大約62倍;使用本文提出的面向用戶態(tài)Click的I/O優(yōu)化框架,同時采用報文零拷貝、輪詢、緩存預取等技術(shù)的情況下,對64 Byte報文的轉(zhuǎn)發(fā)性能為11 400 Kp/s,性能提升大約121倍。通過簡單計算可知,使用報文零拷貝和緩存預取技術(shù)可以將包轉(zhuǎn)發(fā)能力提高將近60倍。此外,在實驗測試過程中,對于超過128 Byte長度大小的報文轉(zhuǎn)發(fā)速度與設(shè)備發(fā)包速度相當,即可以實現(xiàn)完全轉(zhuǎn)發(fā)。

      (2)吞吐率結(jié)果與分析

      與包轉(zhuǎn)發(fā)速率相對應(yīng),圖4(b)和表2展示了不同技術(shù)下的吞吐率,從吞吐率的表現(xiàn)可以得知,原生態(tài)用戶態(tài)Click的吞吐率表現(xiàn)最差,其最大吞吐率只有981 Mb/s,相同報文長度下,使用3種優(yōu)化技術(shù)最大吞吐率達到9 860 Mb/s。測試結(jié)果顯示,從128 Byte長度大小的報文開始,同時使用輪詢、零拷貝、報文預取等技術(shù)優(yōu)化的Click用戶態(tài)的吞吐率與測試儀報文發(fā)送的吞吐率相等。此外,對于優(yōu)化后的Click I/O在多核、多線程時的表現(xiàn)也進行了簡單測試,由于經(jīng)過優(yōu)化的Click的I/O能力單核、單線程已經(jīng)超過了5 Gb/s吞吐率,使用多核、多進程吞吐率一直保持單接口滿負荷狀態(tài)(≈10 Gb/s)。

      Fig.4 Throughput and forwarding rate in different mechanisms圖4 不同技術(shù)下的吞吐率和轉(zhuǎn)發(fā)性能表現(xiàn)

      Table 1 Forwarding rate in different mechanisms表1 不同技術(shù)下的轉(zhuǎn)發(fā)速率

      Table 2 Throughput in different mechanisms表2 不同技術(shù)下的吞吐率

      6 結(jié)論與展望

      本文通過使用設(shè)備輪詢、零拷貝、報文預取等關(guān)鍵技術(shù)對工作在用戶態(tài)的Click軟件路由器的收發(fā)報文的I/O框架進行了優(yōu)化,改進設(shè)計了一種新的面向用戶態(tài)Click的I/O優(yōu)化框架,并利用Intel DPDK進行了實現(xiàn)和驗證。實驗證明,通過DMA將網(wǎng)卡中報文直接讀取到用戶態(tài),然后使用CPU隊列的輪詢技術(shù)進行收發(fā),能夠?qū)⑥D(zhuǎn)發(fā)性能提高超過一個數(shù)量級。通過組合使用設(shè)備輪詢、零拷貝技術(shù)和緩存預取技術(shù),可以將用戶態(tài)Click的收發(fā)報文的I/O性能提高超過兩個數(shù)量級,達到121倍。

      在測試過程中發(fā)現(xiàn),相對于原生的DPDK的報文轉(zhuǎn)發(fā)能力,使用DPDK優(yōu)化的Click性能還有一定的性能損失,后期工作可以通過改進Click的調(diào)度機制,優(yōu)化隊列等方式進行進一步的改進。此外,現(xiàn)階段對于Click用戶態(tài)I/O性能提升的設(shè)計與實現(xiàn)中主要是通用服務(wù)器上單核單進程的優(yōu)化,集中在收發(fā)報文的I/O處理中,對于如何充分利用多核、多線程的并發(fā)處理能力沒有進行深入研究。此外,如何發(fā)揮批量處理能力,高效利用NUMA架構(gòu)和網(wǎng)卡多隊列的特性優(yōu)勢均沒有進行深度優(yōu)化,這些都將是后續(xù)工作的方向。

      [1]Morris R,Kohler E,Jannotti J,et al.The Click modular router[J].ACM Symposium on Operating Systems Principles,1999,33(5):263-297.

      [2]Han Dongsu,Anand A,Dogar F,et al.XIA:efficient support for evolvable internetworking[C]//Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation,San Jose,USA,Apr 25-27,2012.Berkeley,USA:USENIXAssociation,2012:23.

      [3]Aggarwal B,Akella A,Anand A,et al.EndRE:an end-system redundancy elimination service for enterprises[C]//Proceedings of the 7th USENIX Symposium on Networked Systems Design and Implementation,San Jose,USA,Apr 28-30,2010.Berkeley,USA:USENIXAssociation,2010:28.

      [4]Sekar V,Egi N,Ratnasamy S,et al.Design and implementation of a consolidated middlebox architecture[C]//Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation,San Jose,USA,Apr 25-27,2012.Berkeley,USA:USENIXAssociation,2012:24.

      [5]Dobrescu M,Egi N,Argyraki K,et al.RouteBricks:exploiting parallelism to scale software routers[C]//Proceedings of the 22nd ACM SIGOPS Symposium on Operating Systems Principles,Big Sky,USA,Oct 11-14,2009.New York:ACM, 2009:15-28.

      [6]Kim J,Huh S,Jang K,et al.The power of batching in the Click modular router[C]//Proceedings of the 3rd ACM SIGOPS Asia-Pacific Conference on Systems,Seoul,Jul 23-24,2012.New York:ACM,2012:14.

      [7]Han S,Jang K,Park K S,et al.PacketShader:a GPU-accelerated software router[J].ACM SIGCOMM Computer Communication Review,2010,40(4):195-206.

      [8]Chen Benjie,Morris R.Flexible control of parallelism in a multiprocessor PC router[C]//Proceedings of the General Track:2002 USENIX Annual Technical Conference,Monterey,USA,Jun 10-15,2002.Berkeley,USA:USENIX Association,2002:333-346.

      [9]Nikander P,Nyman B,Rinta-aho T,et al.Towards softwaredefined silicon:experiences in compiling Click to NetFPGA [C]//European NetFPGADevelopers Workshop,Sep 2010.

      [10]Lockwood J W,Mckeown N,Watson G,et al.NetFPGA—an open platform for Gigabit-rate network switching and routing[C]//Proceedings of the 2007 IEEE International Conference on Microelectronic Systems Education,San Diego, Jun 3-4,2007.Piscataway,USA:IEEE,2007:160-161.

      [11]Schelle G,Grunwald D.CUSP:a modular framework for high speed network applications on FPGAs[C]//Proceedings of the 13th ACM/SIGDA International Symposium on Field Programmable Gate Arrays,Monterey,USA,Feb 20-22,2005.New York:ACM,2005:246-257.

      [12]Linux Kernel Contributors.Packet_mmap[EB/OL].[2015-07-22].https://www.kernel.org/doc/Documentation/networking/ p-acket_mmap.txt.

      [13]Rizzo L.Netmap:a novel framework for fast packet I/O [C]//Proceedings of the 2012 USENIX Annual Technical Conference,2012.

      [14]PF_RINGTM[EB/OL].[2015-07-22].http://www.ntop.org/ products/pf_ring/.

      [15]Intel.Data plane development kit[EB/OL].[2015-07-22].http://www.dpdk.org.

      [16]Barbette T,Soldani C,Mathy L.Fast userspace packet processing[C]//Proceedings of the 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems,Oakland,USA,May 7-8,2015.Washington: IEEE Computer Society,2015:5-16.

      [17]Gallenmuller S,Emmerich P,Wohlfart F,et al.Comparison of frameworks for high-performance packet IO[C]//Proceedings of the 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems,Oakland,USA,May 7-8,2015.Washington:IEEE Computer Society,2015:29-38.

      [18]Huggahalli R,Iyer R,Tetrick S.Direct cache access for high bandwidth network I/O[C]//Proceedings of the 32nd International Symposium on Computer Architecture,Madison,USA,Jun 7-8,2005.Washington:IEEE Computer Society,2005:50-59.

      [19]Bolla R,Bruschi R.PC-based software routers:high performance and application service support[C]//Proceedings of the 2008 ACM SIGCOMM Workshop on Programmable Routers for Extensible Services of Tomorrow,Seattle, USA,Aug 17-22,2008.New York:ACM,2008:27-32.

      LIU Song was born 1992.He is an M.S.candidate at National University of Defense Technology.His research interests include network virtualization and computer network,etc.

      劉松(1992—),男,河南長垣人,國防科技大學碩士研究生,主要研究領(lǐng)域為網(wǎng)絡(luò)虛擬化,計算機網(wǎng)絡(luò)等。參與國家重點基礎(chǔ)研究發(fā)展計劃(973計劃)和信息保障重點實驗室開放基金項目等。

      LU Zexin was born in 1963.He is a researcher and M.S.supervisor at National University of Defense Technology. His research interests include high-performance computer and high-performance router,etc.

      盧澤新(1963—),男,重慶人,國防科技大學研究員、碩士生導師,主要研究領(lǐng)域為高性能計算機,高性能路由器等。

      ZHANG Xiaozhe was born in 1976.He is an associate researcher and M.S.supervisor at National University of Defense Technology.His research interests include high-performance router,route protocol and protocol distributed parallel processing,etc.

      張曉哲(1976—),男,遼寧鐵嶺人,國防科技大學副研究員、碩士生導師,主要研究領(lǐng)域為高性能路由器,路由協(xié)議,協(xié)議分布并行處理等。

      MA Shicong was born in 1986.He is a Ph.D.candidate at National University of Defense Technology.His research interests include network virtualization and computer network,etc.

      馬世聰(1986—),男,遼寧營口人,國防科技大學博士研究生,主要研究領(lǐng)域為網(wǎng)絡(luò)虛擬化,計算機網(wǎng)絡(luò)等。

      Design and Implementation of Optimization I/O Framework for Click Modular Router in User Level*

      LIU Song+,LU Zexin,ZHANG Xiaozhe,MAShicong
      School of Computer,National University of Defense Technology,Changsha 410073,China
      +Corresponding author:E-mail:liusong_ee@163.com

      Software router has played a more and more important role in the development of modern networks,and the Click modular router has been one of the most popular software routers as it provides a good platform for new protocol development and rapid prototyping.Due to external overhead introduced by practical mechanism,I/O performance,which has become a bottleneck,strictly prevents the packet processing capability of Click in the user level. Aiming at the shortcomings of the I/O mechanism in the existing Click modular router,this paper proposes an optimized I/O framework for the Click modular router in the user level,through using the poll mode,zero copy and packet prefetching.The experimental results show that the optimized I/O framework can provide better performance (121 times)than the native.

      software router;Click;I/O;poll mode;zero copy;packets prefetching

      10.3778/j.issn.1673-9418.1509095

      A

      TP393.0

      *The National Basic Research Program of China under Grant No.2012LB315900(國家重點基礎(chǔ)研究發(fā)展計劃(973計劃)).

      Received 2015-08,Accepted 2015-10.

      CNKI網(wǎng)絡(luò)優(yōu)先出版:2015-11-11,http://www.cnki.net/kcms/detail/11.5602.TP.20151111.1648.004.html

      猜你喜歡
      輪詢拷貝網(wǎng)卡
      在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
      基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計?
      Server 2016網(wǎng)卡組合模式
      唐氏綜合征是因為“拷貝”走樣了
      依托站點狀態(tài)的兩級輪詢控制系統(tǒng)時延特性分析
      自動化學報(2016年8期)2016-04-16 03:38:56
      利用時間輪詢方式操作DDR3實現(xiàn)多模式下數(shù)據(jù)重排
      挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
      文件拷貝誰最“給力”
      數(shù)據(jù)鏈輪詢多網(wǎng)優(yōu)化設(shè)計方法研究*
      巧識劣質(zhì)水晶頭
      肃宁县| 崇义县| 诸暨市| 阜城县| 依安县| 徐闻县| 扶余县| 湘乡市| 承德县| 新乡市| 昌吉市| 隆子县| 剑川县| 环江| 花莲县| 阳高县| 鄂伦春自治旗| 浮梁县| 崇义县| 保德县| 宜兰市| 衡水市| 南雄市| 通辽市| 会昌县| 镇宁| 景洪市| 子长县| 延长县| 阿城市| 当阳市| 安溪县| 昭觉县| 开远市| 舞钢市| 安宁市| 巴东县| 焦作市| 阳原县| 尉氏县| 车险|