黃昱愷,耿金坤,令瑞林,李丹
(清華大學(xué),北京 100084)
NFV數(shù)據(jù)平面的網(wǎng)絡(luò)性能優(yōu)化技術(shù)
黃昱愷,耿金坤,令瑞林,李丹
(清華大學(xué),北京 100084)
近年來(lái),NFV因?yàn)槠洳渴痨`活、成本低廉等優(yōu)良特性,受到了學(xué)術(shù)界與工業(yè)界的廣泛關(guān)注。然而,性能問(wèn)題在NFV發(fā)展過(guò)程中變得愈加明顯,逐漸成為制約NFV技術(shù)進(jìn)步的主要瓶頸。針對(duì)影響NFV數(shù)據(jù)平面網(wǎng)絡(luò)性能的主要因素進(jìn)行了歸納概述,分析了NFV的性能瓶頸所在,并在此基礎(chǔ)上進(jìn)一步歸納了相應(yīng)的優(yōu)化方法。最后,簡(jiǎn)要介紹了當(dāng)前比較成熟的兩種系統(tǒng)架構(gòu),能夠顯著提升NFV數(shù)據(jù)平面的網(wǎng)絡(luò)性能。
NFV;性能優(yōu)化;系統(tǒng)架構(gòu)
在過(guò)去的很長(zhǎng)一段時(shí)間里,電信運(yùn)營(yíng)商每新增一項(xiàng)網(wǎng)絡(luò)服務(wù)都需要采購(gòu)大量的專用設(shè)備,另一方面,設(shè)備提供商也需要投入大量的人員進(jìn)行設(shè)計(jì)研發(fā)。從開(kāi)始規(guī)劃到最后的部署,不僅周期漫長(zhǎng),而且造價(jià)昂貴??紤]到這些因素,運(yùn)營(yíng)商開(kāi)始尋求成本低廉、部署靈活的新型解決方案[1]。網(wǎng)絡(luò)功能虛擬化(network function virtualization, NFV)正是在這種需求背景下產(chǎn)生的。2012年10月,ETSI(European Telecommunications Standards Institute,歐洲電信標(biāo)準(zhǔn)化協(xié)會(huì))發(fā)布 NFV白皮書(shū),其最終目標(biāo)是通過(guò)軟件定義網(wǎng)絡(luò)功能,實(shí)現(xiàn)網(wǎng)絡(luò)功能的靈活部署。網(wǎng)絡(luò)功能虛擬化可以實(shí)現(xiàn)軟硬件的解耦,運(yùn)營(yíng)商只需購(gòu)置通用硬件設(shè)備,甚至可以采用云計(jì)算的采購(gòu)模式部署新型的網(wǎng)絡(luò)服務(wù)。更重要的是,由于網(wǎng)絡(luò)功能軟件化,網(wǎng)絡(luò)功能可以輕松地遷移與擴(kuò)展。然而,NFV同樣面臨著諸多挑戰(zhàn)[2],性能問(wèn)題成為制約 NFV技術(shù)發(fā)展的主要瓶頸,大量工作圍繞如何提高NFV數(shù)據(jù)平面的網(wǎng)絡(luò)性能而展開(kāi),力圖通過(guò)NFV數(shù)據(jù)平面的優(yōu)化以實(shí)現(xiàn)接近硬件設(shè)備的性能。
本文首先總結(jié)了影響NFV數(shù)據(jù)平面網(wǎng)絡(luò)性能的主要因素,包括網(wǎng)卡中斷、內(nèi)存復(fù)制、系統(tǒng)調(diào)用、鎖的爭(zhēng)奪、上下文切換、文件系統(tǒng)、緩存未命中等開(kāi)銷,并針對(duì)這些開(kāi)銷歸納總結(jié)了主流的優(yōu)化方法,最后介紹了兩種可供參考的NFV架構(gòu)設(shè)計(jì),并簡(jiǎn)要分析了兩種架構(gòu)的優(yōu)缺點(diǎn)。
NFV應(yīng)用的性能很大程度上取決于網(wǎng)絡(luò) I/O的性能,而數(shù)據(jù)分組從到達(dá)網(wǎng)卡到應(yīng)用處理需要經(jīng)歷多個(gè)階段。數(shù)據(jù)分組處理的流程如圖1所示。
圖1 數(shù)據(jù)分組處理的流程
圖1展示了在傳統(tǒng)NFV解決方案中數(shù)據(jù)分組處理的流程,當(dāng)數(shù)據(jù)分組到達(dá)網(wǎng)卡后,通過(guò)DMA(direct memory access)復(fù)制到宿主機(jī)的內(nèi)存空間并觸發(fā)中斷,宿主機(jī)協(xié)議棧處理完數(shù)據(jù)分組后交由虛擬交換機(jī)處理,隨后數(shù)據(jù)由虛擬交換機(jī)遞交至上層客戶機(jī),經(jīng)由虛擬網(wǎng)卡,客戶機(jī)內(nèi)核協(xié)議棧最后到達(dá)提供網(wǎng)絡(luò)功能的應(yīng)用程序。顯然,上述過(guò)程存在著諸多開(kāi)銷,具體來(lái)講可以分為以下幾類。
2.1 網(wǎng)卡中斷開(kāi)銷
輪詢與中斷是操作系統(tǒng)與外設(shè)進(jìn)行 I/O通信的兩種主要方式。一般情況下,網(wǎng)絡(luò)中數(shù)據(jù)分組的到來(lái)具有不可預(yù)測(cè)性[3]。若采用輪詢模式對(duì)數(shù)據(jù)分組進(jìn)行持續(xù)監(jiān)聽(tīng),會(huì)造成很高的CPU占用率,進(jìn)而影響系統(tǒng)其他進(jìn)程的運(yùn)行效率,故主流操作系統(tǒng)都采用中斷來(lái)處理網(wǎng)絡(luò)的請(qǐng)求。中斷處理方式在低速網(wǎng)絡(luò)I/O場(chǎng)景下非常有效[4],然而隨著高速網(wǎng)絡(luò)接口等技術(shù)的迅速發(fā)展,10 Gbit/s、40 Gbit/s甚至100 Gbit/s的網(wǎng)絡(luò)端口已經(jīng)出現(xiàn)。隨著網(wǎng)絡(luò)I/O速率的不斷上升,網(wǎng)卡面對(duì)大量高速數(shù)據(jù)分組引發(fā)頻繁的中斷,中斷引起的上下文切換開(kāi)銷將變得不可忽視,造成較高的時(shí)延[5],并引起吞吐量下降。
2.2 內(nèi)存復(fù)制開(kāi)銷
提供服務(wù)的應(yīng)用進(jìn)程運(yùn)行在用戶空間,而通常情況下,操作系統(tǒng)首先將到來(lái)的數(shù)據(jù)分組讀取到內(nèi)核空間,為了使上層應(yīng)用能夠?qū)邮盏降臄?shù)據(jù)進(jìn)行相應(yīng)處理,需要將內(nèi)核將數(shù)據(jù)從內(nèi)核空間復(fù)制到用戶空間;而對(duì)于應(yīng)用進(jìn)程產(chǎn)生的數(shù)據(jù),也需要由用戶空間復(fù)制到內(nèi)核空間,最后由網(wǎng)卡發(fā)出。操作系統(tǒng)在處理數(shù)據(jù)過(guò)程中往往需要進(jìn)行多次復(fù)制操作,嚴(yán)重影響了高速網(wǎng)絡(luò)服務(wù)的性能[6,7]。
2.3 鎖開(kāi)銷
當(dāng)多個(gè)線程或進(jìn)程需要對(duì)某一共享資源進(jìn)行操作時(shí),往往需要通過(guò)鎖機(jī)制來(lái)保證數(shù)據(jù)的一致性和同步性,而加鎖帶來(lái)的開(kāi)銷會(huì)顯著降低數(shù)據(jù)處理的性能[3]。具體來(lái)說(shuō),鎖機(jī)制造成的開(kāi)銷主要有兩方面:一方面,線程在為共享資源上鎖或者去鎖的過(guò)程中通常需要耗時(shí)幾十納秒[8];另一方面,在競(jìng)爭(zhēng)鎖的過(guò)程中,等待線程在阻塞過(guò)程中無(wú)法進(jìn)行有效的數(shù)據(jù)處理和計(jì)算,從而降低了整個(gè)系統(tǒng)的并發(fā)性能[9]。無(wú)論是宿主機(jī)還是客戶機(jī)的內(nèi)核協(xié)議棧中,都存在大量的共享資源,這也制約著整個(gè)系統(tǒng)的可擴(kuò)展性。
2.4 上下文切換開(kāi)銷
NFV的擴(kuò)展需要多核并行化的支持,然而在該場(chǎng)景下,數(shù)據(jù)平面需要進(jìn)行資源的分配調(diào)度,調(diào)度過(guò)程中涉及多種類型的上下文切換,在網(wǎng)卡中斷、系統(tǒng)調(diào)用、進(jìn)程調(diào)度與跨核資源訪問(wèn)等上下文切換過(guò)程中,操作系統(tǒng)均需要保存當(dāng)前狀態(tài)[10-14],而這一類的切換開(kāi)銷往往相當(dāng)昂貴,嚴(yán)重影響系統(tǒng)性能。
2.5 文件系統(tǒng)管理開(kāi)銷
socket(套接字)作為網(wǎng)絡(luò)通信過(guò)程中的基本操作單位,在NFV數(shù)據(jù)平面中同樣扮演重要的角色。本質(zhì)上說(shuō),socket也是一種文件抽象。Linux為了實(shí)現(xiàn)統(tǒng)一文件管理,通過(guò)虛擬文件系統(tǒng)(virtual file system,VFS)為套接字綁定了一系列對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)如inode、dentry等。通常情況下,這些重量級(jí)的數(shù)據(jù)結(jié)構(gòu)對(duì)于套接字本身的功能來(lái)說(shuō)是不必要的[15]。而在NFV的應(yīng)用場(chǎng)景下,往往需要對(duì)socket進(jìn)行頻繁的分配和釋放,因而操作系統(tǒng)在管理這些數(shù)據(jù)結(jié)構(gòu)的過(guò)程中會(huì)引起較大的性能開(kāi)銷[10]。
2.6 緩存未命中開(kāi)銷
緩存是一種能夠有效提高系統(tǒng)性能的方式,然而由于設(shè)計(jì)的不合理造成頻繁的緩存未命中,則會(huì)嚴(yán)重削弱 NFV數(shù)據(jù)平面的性能。以 Intel XEON 5500為例,在L3緩存命中與緩存未命中條件下的數(shù)據(jù)操作耗時(shí)相差數(shù)倍[16]。如果在系統(tǒng)設(shè)計(jì)中沒(méi)有考慮到這一點(diǎn),存在頻繁的跨核調(diào)用,由此帶來(lái)的緩存未命中會(huì)造成嚴(yán)重的數(shù)據(jù)讀寫(xiě)時(shí)延,從而降低系統(tǒng)整體性能[3]。
綜合第2節(jié)中的分析可以看到,NFV數(shù)據(jù)平面操作過(guò)程中的開(kāi)銷類型復(fù)雜多樣且彼此之間相互關(guān)聯(lián)。針對(duì)第2節(jié)中的性能開(kāi)銷因素,目前主要的優(yōu)化方法可歸納見(jiàn)表1。
表1 性能開(kāi)銷及優(yōu)化方法
3.1 輪詢?nèi)〈袛?/p>
作為 I/O通信的另一種方式,輪詢不存在中斷所固有的開(kāi)銷。以網(wǎng)卡接收分組為例,在輪詢模式下,系統(tǒng)會(huì)在初始化時(shí)屏蔽收發(fā)分組中斷,并使用一個(gè)線程或進(jìn)程不斷檢測(cè)收取分組描述符里的收取分組成功標(biāo)志是否被網(wǎng)卡置位,以此來(lái)判斷是否有數(shù)據(jù)分組,整個(gè)收取過(guò)程沒(méi)有發(fā)生上下文切換,因此也就避免了相應(yīng)的開(kāi)銷。在高速網(wǎng)絡(luò)I/O下,輪詢帶來(lái)的性能提升是非常顯著的。根據(jù)PLVison公司的相關(guān)實(shí)驗(yàn),基于中斷方式的網(wǎng)絡(luò)吞吐速率與基于輪詢處理方式的網(wǎng)絡(luò)吞吐速率相差近20倍。
然而需要注意的是,輪詢并不一定總是優(yōu)于中斷。確切地說(shuō),只有當(dāng)I/O速率接近CPU速率時(shí),中斷的開(kāi)銷變得不可忽略,輪詢模式的優(yōu)勢(shì)才能體現(xiàn);相反,如果數(shù)據(jù)吞吐率很低,中斷能有更好的CPU利用率,此時(shí)不宜采用中斷模式。基于以上分析,針對(duì)網(wǎng)絡(luò)流量抖動(dòng)較大的場(chǎng)景,可以選用中斷與輪詢的混合模式,即:在流量小時(shí)使用中斷模式,當(dāng)遇到大流量時(shí)切換為輪詢模式。目前Linux內(nèi)核(NAPI)與DPDK(data plane development kit,數(shù)據(jù)平面開(kāi)發(fā)工作集)都支持這種混合中斷輪詢模式。
3.2 零復(fù)制技術(shù)
零復(fù)制技術(shù)主要用以避免CPU將數(shù)據(jù)從一個(gè)內(nèi)存區(qū)域復(fù)制到另一個(gè)內(nèi)存區(qū)域帶來(lái)的開(kāi)銷。在NFV數(shù)據(jù)平面操作的場(chǎng)景下,零復(fù)制指的是除網(wǎng)卡將數(shù)據(jù)DMA復(fù)制進(jìn)內(nèi)存外(非CPU參與),從數(shù)據(jù)分組接收到應(yīng)用程序處理數(shù)據(jù)分組,整個(gè)過(guò)程中不存在數(shù)據(jù)復(fù)制。零復(fù)制技術(shù)對(duì)于高速網(wǎng)絡(luò)而言是十分必要的。在高速網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)I/O性能接近甚至超過(guò)CPU的處理能力,過(guò)于頻繁的數(shù)據(jù)復(fù)制幾乎會(huì)耗盡CPU所有的計(jì)算資源,從而使得CPU成為性能瓶頸。同時(shí),數(shù)據(jù)從內(nèi)核空間進(jìn)入應(yīng)用程序所處的用戶空間,該過(guò)程中引發(fā)的上下文切換開(kāi)銷同樣不可忽略。DPDK、Netmap、PF-ring等高性能數(shù)據(jù)分組處理框架都運(yùn)用了零復(fù)制技術(shù),可以實(shí)現(xiàn)在通用平臺(tái)下高效的網(wǎng)絡(luò)處理。
3.3 高效虛擬化技術(shù)
目前在NFV領(lǐng)域常用的高效虛擬化技術(shù)大致可以歸為以下兩類。
(1)基于硬件的虛擬化技術(shù)
I/O透?jìng)髋c SR-IOV是兩種經(jīng)典的虛擬化技術(shù)。I/O透?jìng)?,指的是將物理網(wǎng)卡直接分配給客戶機(jī)使用。這種由硬件支持的技術(shù)可以達(dá)到接近宿主機(jī)的性能。不過(guò)由于PCIe設(shè)備有限,PCI-SIG提出并制定了一套虛擬化規(guī)范——SR-IOV,即單根I/O虛擬化。通過(guò)SR-IOV,可以使一塊物理網(wǎng)卡提供多個(gè)虛擬功能(VF),而每個(gè)VF都可以直接分配給客戶機(jī)使用。通過(guò)SR-IOV解決了PCIe設(shè)備有限的問(wèn)題,不過(guò)與透?jìng)饕粯樱琒R-IOV無(wú)法做到實(shí)時(shí)遷移,并且支持的VF仍有上限。
(2)半虛擬化技術(shù)
半虛擬化(paravirtualization),區(qū)別于完全虛擬化,無(wú)需對(duì)硬件做完全的模擬,而是通過(guò)客戶機(jī)的前端驅(qū)動(dòng)與宿主機(jī)的后端驅(qū)動(dòng)一同配合完成通信,而客戶機(jī)操作系統(tǒng)能夠感知自己處在虛擬化環(huán)境,故稱半虛擬化。由于半虛擬化擁有前后端驅(qū)動(dòng),不會(huì)造成VM-exit,所以半虛擬化擁有更高的性能。主流虛擬化平臺(tái) KVM 就使用了Virtio作為半虛擬化的驅(qū)動(dòng),半虛擬化比起SR-IOV的優(yōu)勢(shì)在于支持熱遷移,并且可以與主流vSwitch對(duì)接。相比之下SR-IOV只支持二層連接,因此半虛擬化技術(shù)具有更好的靈活性。
3.4 網(wǎng)絡(luò)協(xié)議棧優(yōu)化
由于現(xiàn)有網(wǎng)絡(luò)功能如代理、IDS、負(fù)載均衡等都依賴于協(xié)議棧對(duì)到來(lái)數(shù)據(jù)分組進(jìn)行拆封解析,短時(shí)間內(nèi)構(gòu)建完全脫離協(xié)議棧的網(wǎng)絡(luò)功能是不現(xiàn)實(shí)的,而協(xié)議棧的處理性能在小分組、高并發(fā)的場(chǎng)景下并不理想[15]。因此,眾多工作將重點(diǎn)落在了優(yōu)化協(xié)議棧上。如前所述,內(nèi)核協(xié)議棧除了中斷開(kāi)銷和內(nèi)存復(fù)制開(kāi)銷之外,還有鎖、系統(tǒng)調(diào)用、文件系統(tǒng)、跨核等一系列開(kāi)銷,這些開(kāi)銷均嚴(yán)重制約了協(xié)議棧的可擴(kuò)展性,使得協(xié)議棧成為性能瓶頸。
減少鎖開(kāi)銷和跨核開(kāi)銷,目前的主要解決方案是將共享的數(shù)據(jù)結(jié)構(gòu)分區(qū)與連接本地化,即設(shè)法將同一個(gè)流的所有數(shù)據(jù)分組交由同一個(gè)CPU核處理,從而避免了不同核對(duì)于同一資源的競(jìng)爭(zhēng),進(jìn)而也就避免了加鎖的開(kāi)銷。同時(shí),在同一個(gè)CPU核處理同一條流也可以提升緩存的命中率,避免跨核的開(kāi)銷。Affinity-Accept、Megapipe以及Linux的So_Reuseport均實(shí)現(xiàn)了被動(dòng)連接的本地化,通過(guò)拆分監(jiān)聽(tīng)散列表,實(shí)現(xiàn)了從3次握手到連接建立均在同一個(gè)核上進(jìn)行。Fastsocket[15]則更進(jìn)一步,通過(guò)控制主動(dòng)連接的源端口,并配合網(wǎng)卡的Flow Director功能,實(shí)現(xiàn)了主動(dòng)連接的本地化。
減少系統(tǒng)調(diào)用開(kāi)銷,目前的解決方案可以分為兩種:一種方案是直接將協(xié)議棧移動(dòng)到應(yīng)用層實(shí)現(xiàn),避免昂貴的上下文切換開(kāi)銷,如mTCP、lwIP等方案;另一種方案則是采用批處理的思想,批量調(diào)用系統(tǒng)調(diào)用以平攤開(kāi)銷,MegaPipe、FlexSC、VOS均使用批量系統(tǒng)調(diào)用來(lái)減小開(kāi)銷。
減少文件系統(tǒng)開(kāi)銷,目前的解決方案也可分為兩種:一種方案為自定義輕量級(jí)的 socket,一些優(yōu)化方案如mTCP、lwIP等,選擇直接繞過(guò)VFS,在用戶態(tài)重新定義實(shí)現(xiàn)socket結(jié)構(gòu)體,另外一些優(yōu)化方案如MegaPipe等,雖然在內(nèi)核實(shí)現(xiàn),但也通過(guò)自定義API避免了原有VFS的文件操作;另一種方案則是繼承VFS的socket實(shí)現(xiàn),但是簡(jiǎn)化掉inode與dentry的初始化與銷毀過(guò)程,拋棄其中的鎖。這是因?yàn)閷?duì)于socket而言,inode與dentry是完全無(wú)用的。此類方案的代表性工作是Fastsocket。相比前一種方案,該方案的優(yōu)點(diǎn)在于能夠完全兼容傳統(tǒng) socket,降低NFV應(yīng)用的移植難度。
綜合以上分析可以看出,NFV數(shù)據(jù)平面中的性能開(kāi)銷類型多樣,且相互關(guān)聯(lián)。因此,現(xiàn)有的比較成熟的解決方案往往需要結(jié)合多種優(yōu)化技術(shù),從而實(shí)現(xiàn)性能的顯著提升。針對(duì)NFV的特殊場(chǎng)景,存在兩種高性能的網(wǎng)絡(luò)數(shù)據(jù)分組 I/O體系架構(gòu)。NFV數(shù)據(jù)平面架構(gòu)設(shè)計(jì)如圖2所示。
圖2 NFV數(shù)據(jù)平面架構(gòu)設(shè)計(jì)
如圖2(a)所示為第一種架構(gòu),使用SR-IOV或者PCIe穿透技術(shù)直接將物理設(shè)備或者虛擬功能分配給客戶機(jī),在客戶機(jī)內(nèi)部署成熟的協(xié)議棧優(yōu)化方案(如Fastsocket),或者基于DPDK重構(gòu)一個(gè)新型的應(yīng)用層協(xié)議棧。這種架構(gòu)的優(yōu)點(diǎn)在于實(shí)現(xiàn)簡(jiǎn)單,幾乎不需要修改現(xiàn)有網(wǎng)絡(luò)功能的程序就能實(shí)現(xiàn)整體性能的提升;然而缺點(diǎn)也十分明顯:由于SR-IOV的本身缺陷,使得業(yè)務(wù)鏈缺乏靈活性,不同虛擬機(jī)之間只能通過(guò)二層路由進(jìn)行通信,且不支持熱遷移,這與NFV的思想是相悖的。因此該方案更適合業(yè)務(wù)鏈簡(jiǎn)單、功能單一并希望盡量不修改應(yīng)用程序的場(chǎng)景。
如圖 2(b)所示為第二種架構(gòu),客戶機(jī)使用半虛擬化網(wǎng)卡,并與宿主機(jī)里的 vSwitch相連,由vSwitch控制業(yè)務(wù)鏈,而vSwitch和半虛擬化的前后端均可使用DPDK優(yōu)化,可以采用輪詢?nèi)〈袛?、零?fù)制等技術(shù)實(shí)現(xiàn)性能的大幅提升。NetVM[3]是采用此架構(gòu)實(shí)現(xiàn)的典型代表方案。在NetVM的解決方案中,通過(guò)在客戶機(jī)與宿主機(jī)之間進(jìn)行內(nèi)存共享,從而實(shí)現(xiàn)了全程零復(fù)制。具體地,NetVM在宿主機(jī)里使用DPDK輪詢收取分組并放入共享的大頁(yè)內(nèi)存,在客戶機(jī)內(nèi)使用前端驅(qū)動(dòng)映射地址空間并模擬PCI設(shè)備。客戶機(jī)內(nèi)的應(yīng)用程序可以通過(guò) NetVM 提供的接口直接訪問(wèn)共享內(nèi)存的數(shù)據(jù)分組,并指定數(shù)據(jù)分組接下來(lái)的流向。NetVM通過(guò)這一整套機(jī)制,消除了宿主機(jī)與客戶機(jī)、客戶機(jī)與客戶機(jī)交互過(guò)程中的內(nèi)存復(fù)制開(kāi)銷,故可以提供極高的性能。盡管第二種架構(gòu)的部署靈活、性能優(yōu)秀,但是架構(gòu)實(shí)現(xiàn)復(fù)雜,應(yīng)用程序往往需要根據(jù)半虛擬化前端驅(qū)動(dòng)做出修改,甚至需要直接處理裸分組,應(yīng)用的代價(jià)遠(yuǎn)高于第一種方案。
本文分析并總結(jié)了影響NFV數(shù)據(jù)平面處理性能的主要因素,具體包括網(wǎng)卡中斷開(kāi)銷、內(nèi)存分組開(kāi)銷、鎖開(kāi)銷、上下文切換開(kāi)銷、文件系統(tǒng)管理開(kāi)銷以及緩存未命中開(kāi)銷等。在充分分析以上開(kāi)銷成因的基礎(chǔ)上,進(jìn)一步歸納總結(jié)了相應(yīng)的性能優(yōu)化方案。最后介紹了兩個(gè)可供參考的系統(tǒng)架構(gòu),并簡(jiǎn)要分析了兩種架構(gòu)的優(yōu)點(diǎn)與缺點(diǎn)。未來(lái)NFV性能優(yōu)化將主要側(cè)重兩個(gè)方面。一方面,隨著容器技術(shù)的日益成熟,基于容器的輕量級(jí)NFV優(yōu)化方案將被廣泛關(guān)注,并逐漸取代基于虛擬機(jī)的傳統(tǒng)NFV方案,從而對(duì)系統(tǒng)資源實(shí)現(xiàn)更加高效靈活的利用;另一方面,通用性的NFV應(yīng)用平臺(tái)將成為主要研究方向,今后工作應(yīng)重點(diǎn)考慮如何兼顧高性能與通用性,簡(jiǎn)化NFV應(yīng)用的移植過(guò)程,實(shí)現(xiàn)應(yīng)用與平臺(tái)的無(wú)縫對(duì)接。
[1] 李晨, 段曉東, 陳煒, 等. SDN和NFV的思考與實(shí)踐[J]. 電信科學(xué), 2014, 30(8): 23-27. LI C, DUAN X D, CHEN W, et al. Thoughts and practices about SDN and NFV [J]. Telecommunications Science, 2014, 30(8): 23-27.
[2] 趙慧玲, 史凡. SDN/NFV的發(fā)展與挑戰(zhàn)[J]. 電信科學(xué), 2014, 30(8): 13-18. ZHAO H L,SHI F. Development and challenge of SDN/NFV[J]. Telecommunications Science, 2014, 30(8): 13-18.
[3] HWANG J, RAMAKRISHNAN K K, WOOD T. NetVM: high performance and flexible networking using virtualization on commodity platforms[J]. IEEE Transactions on Network and Service Management, 2015, 12(1): 34-47.
[4] FIGURE E. Eliminating receive livelock in an interrupt-driven kernel[J]. ACM Transactions on Computer Systems, 1997, 15(3): 217-252.
[5] YANG J, MINTURN D B, HADY F. When poll is better than interrupt[C]//FAST, February 14?17, 2012, San Jose, CA, USA. New York: ACM Press, 2012: 3.
[6] WU W, CRAWFORD M, BOWDEN M. The performance analysis of Linux networking-packet receiving[J]. Computer Communications, 2007, 30(5): 1044-1057.
[7] KOH Y, PU C, BHATIA S, et al. Efficient packet processing in user-level Oses: a study of UML[C]//The 31th IEEE Conference on Local Computer Networks, November 14?16, 2006, Sydney, Australia. New Jersey: IEEE Press, 2006: 63-70.
[8] DEAN J. Designs, lessons and advice from building large distributed systems[J]. Keynote from LADIS, 2009(1).
[9] DINIZ P C, RINARD M C. Lock coarsening: eliminating lock overhead in automatically parallelized object-based programs[J]. Journal of Parallel and Distributed Computing, 1998, 49(2): 218-244.
[10] BOYD-WICKIZER S, CLEMENTS A T, MAO Y, et al. An analysis of Linux scalability to many cores[C]//Usenix Symposium on Operating Systems Design & Implementation, October 4?6, 2010, Vancouver, BC, Canada. New York: ACM Press, 2010: 86-93.
[11] KAMRUZZAMAN M, SWANSON S, TULLSEN D M. Inter-core prefetching for multicore processors using migrating helper threads[J]. ACM SIGPLAN Notices, 2011, 46(3): 393-404.
[12] KAZEMPOUR V, KAMALI A, FEDOROVA A. AASH: an asymmetry-aware scheduler for hypervisors[J]. ACM SIGPLAN Notices, 2010, 45(7): 85-96.
[13] VAHDAT A, YOCUM K, WALSH K, et al. Scalability and accuracy in a large-scale network emulator[J]. ACM SIGOPS Operating Systems Review, 2002, 36(SI): 271-284.
[14] EMMERICH P, RAUMER D, WOHLFART F, et al. Performance characteristics of virtual switching[C]// 2014 IEEE 3rd International Conference on Cloud Networking (CloudNet), October 8?10, 2014, Luxembourg. New Jersey: IEEE Press, 2014: 120-125.
[15] LIN X, CHEN Y, LI X, et al. Scalable kernel TCP design and implementation for short-lived connections[C]//International Conference on Architectural Support for Programming Languages & Operating Systems, April 2?6, 2016, Atlanta, Georgia, USA. New York: ACM Press, 2016: 339-352.
[16] LEVINTHAL D. Performance analysis guide for intel core i7 processor and intel XEON 5500 processors[J]. Intel Performance Analysis Guide, 2009(30): 18.
黃昱愷(1992?),男,清華大學(xué)碩士生,主要研究方向?yàn)檐浖x網(wǎng)絡(luò)、網(wǎng)絡(luò)功能虛擬化、高性能網(wǎng)絡(luò)協(xié)議棧設(shè)計(jì)與實(shí)現(xiàn)。
耿金坤(1994?),男,清華大學(xué)碩士生,主要研究方向?yàn)楦咝阅芫W(wǎng)絡(luò)協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)、數(shù)據(jù)中心帶寬資源分配方案的設(shè)計(jì)與實(shí)現(xiàn)。
令瑞林(1992?),男,清華大學(xué)碩士生,主要研究方向?yàn)閿?shù)據(jù)中心網(wǎng)絡(luò)、網(wǎng)絡(luò)安全與網(wǎng)絡(luò)性能優(yōu)化技術(shù)等。
李丹(1981?),男,清華大學(xué)計(jì)算機(jī)系特別研究員、博士生導(dǎo)師,主要從事網(wǎng)絡(luò)體系結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議與網(wǎng)絡(luò)系統(tǒng)的研究工作。擔(dān)任國(guó)家“973”計(jì)劃(青年科學(xué)家專題)項(xiàng)目“軟件定義的云數(shù)據(jù)中心網(wǎng)絡(luò)基礎(chǔ)理論與關(guān)鍵技術(shù)”首席科學(xué)家,獲得2014年清華大學(xué)“學(xué)術(shù)新人獎(jiǎng)”,獲得2015年國(guó)家優(yōu)秀青年科學(xué)基金資助。主持或參加國(guó)家科研項(xiàng)目10多項(xiàng),曾擔(dān)任國(guó)際學(xué)術(shù)期刊IEEE Transactions on Computer編委(2013-2015年)。《電信科學(xué)》雜志編委。發(fā)表論文50多篇,論文被引用2 000多次,獲得國(guó)內(nèi)外專利20多項(xiàng)。
Performance optimization solutions for NFV data plane
HUANG Yukai, GENG Jinkun, LING Ruilin, LI Dan
Tsinghua University, Beijing 100084, China
In recent years, network function virtualization (NFV) is arousing concern widely from both academia and industry due to its flexible deployment and low cost. However, the performance bottleneck becomes increasingly distinctive and hinders the progress of NFV technology. The major factors were studied which could seriously affect the performance of NFV data plane. Firstly, an analysis was conducted on the causes for various kinds of performance overheads. Then, the optimization solutions were summarized to mitigate these overheads. Finally, a brief introduction was made on two types of architecture, which could significantly improve the performance of NFV data plane.
network function virtualization, performance optimization, system architecture
TP393
A
10.11959/j.issn.1000?0801. 2017088
2017?01?13;
2017?03?27