999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于智能網卡的網絡數據獲取平臺優化技術

2007-12-31 00:00:00周新亮孫小涓趙曉芳陳明宇
計算機應用研究 2007年8期

摘要:利用智能網卡作為其網絡數據報文捕獲平臺,并在其上完成部分TCP/IP 協議卸載,以在盡量減少主機資源占用的前提下提高海量網絡流實時處理系統的處理能力。為了充分挖掘系統潛能,對智能網卡的網絡驅動進行深入研究,并作了各種優化和系統測試。測試表明優化效果顯著,在主機CPU占用為零的前提下,報文捕獲性能達到線速(148.8×104 pps)。

關鍵詞:海量網絡流實時處理系統;智能網卡;線速

中圖分類號:TP302文獻標志碼:A

文章編號:1001-3695(2007)08-0281-06

0引言

眾多面向網絡安全的信息獲取和監控處理系統均是海量網絡流實時處理系統[1]。這些系統均需要對骨干網上的網絡流進行快速獲取并進行及時、完整的信息分析和處理。它們需實時獲取骨干網上所有的數據報文,并對獲取的數據報文進行TCP/IP協議還原和應用協議還原,以及對還原了的內容進行檢查[2]。這樣的系統有兩個比較明顯的性能要求:一是完整的實時數據獲取能力;另一個是實時數據分析和處理能力。同時滿足這樣兩方面的要求是非常困難的,特別是數據獲取。其數據獲取平臺的報文捕獲能力直接影響到它對網絡流及時、完整的處理。

國內外的很多研究都從減少數據獲取的開銷入手,進而達到消耗同樣的資源獲得更多數據的目的。比較典型的技術就是采取零拷貝技術[2]。零拷貝的思想是將普通千兆網卡捕獲的報文直接以DMA方式存儲到應用程序可以訪問的地址空間,避免數據報文在內核態中傳輸時的內存操作。通過性能分析比較表明,它在接收64與1 500 Byte的報文時吞吐量分別達到了90×104和8.2×104 pps。與傳統的需經過核心協議棧的報文捕獲平臺相比,報文捕獲能力有了較為顯著的提高。但它具有如下缺點:不能線速捕獲64 Byte報文,對小數據報文的處理能力有限;中斷開銷會消耗掉主機的一部分資源。筆者對中斷開銷進行了測試,當在網絡驅動一級收到報文后立即丟棄,普通千兆網卡可線速捕獲64 Byte報文,但空負載下需15%的CPU資源用于中斷處理。如果加入其他處理功能,性能會進一步下降。

智能網卡是帶有通信處理器,具有一定通信協議處理能力的千兆以太網卡。它由智能中心自主設計和實現。它是為機群系統(曙光4000)的互聯網絡而設計的網絡適配器。到目前為止,共設計和實現了三版智能網卡。第一版智能網卡[3]基于i960VH處理器設計,采用可編程邏輯器件EPLD實現網絡接口設計。實測表明,在不包括上層協議的情況下,網卡到網卡的傳輸延遲為3 μs,節點到節點數據傳送帶寬可達500 Mbps。第二版智能網卡[4]的硬件核心是Intel IOP310處理器系統。第三版智能網卡的通信處理器是PowerPC 440GX,主頻是375 MHz,可調頻至500 MHz;具有兩個百兆RTL8208網絡部件和兩個千兆MC92604網絡部件;板卡上有256 MB DDR內存和256 KB SRAM,內存可擴展至512 MB;此外,它還有一個TCP/IP加速硬件TAH(TCP/IP acceleration hardware)用于進行IP首部和TCP/UDP的校驗計算;同時,它還具有scatter/gather DMA功能,能一次將卡上地址不同的數據塊傳送到主機預先分配的不同地址空間。

本文采用第三版智能網卡代替零拷貝報文捕獲平臺的普通千兆網卡,同時在不影響系統性能的基礎上完成TCP/IP校驗和報文過濾,并實現部分的TCP/IP協議卸載[5]??ㄉ线\行經過裁減的Linux 2.6.8內核,網絡驅動使用內核自帶的通用驅動。本文對采用智能網卡的零拷貝報文捕獲平臺進行了多種性能優化,其目標是在滿足網絡數據實時獲取的同時,達到對主機而言的零丟包、零拷貝、零中斷和零CPU占用。

1智能報文捕獲平臺優化技術

智能報文捕獲平臺的報文捕獲性能優化,主要是智能網卡的網絡驅動優化。在硬件環境固定的條件下,盡可能減少軟件上對報文捕獲的影響,及充分利用卡上硬件資源。目的是盡量節省CPU在報文獲取上的開銷,避免由于CPU資源短缺而導致的丟包,盡可能地挖掘智能網卡捕獲報文的潛能。

智能網卡的結構及報文捕獲流程如圖1所示。圖中實線是各設備間的數據流向,虛線代表卡的報文捕獲過程。智能網卡的PLB總線上連有256 MB DDR SDRAM、256 KB SRAM和media access layer(MAL)等設備。SRAM被設置成二級cache,CPU通過PLB總線對它進行訪問。MAL是一個硬件核,用于管理內存和通信核(communications media access controllers,COMMACs)間基于包的數據傳輸。有兩個TAH部件,分別與Ethernet2和Ethernet3相連。智能網卡的報文捕獲步驟描述如下:

a)網絡驅動初始化存放于DDR中的接收描述符表;

b)網絡驅動啟動COMMAC處理新幀;

c)從網絡上捕獲了一個幀(步驟b)c)在順序上可調換);

d)COMMAC通知MAL處理新幀;

e)MAL從描述符表中獲得接收描述符的信息;

f)MAL將描述符的控制字寫到COMMAC中并初始化數據的傳輸;

g)COMMAC將捕獲的幀寫到FIFO中;

h)MAL將FIFO中的幀傳送到描述符指向的存放于DDR中的幀緩沖區;

i)MAL讀取COMMAC的狀態信息并將它寫入描述符中;

j)若中斷條件滿足,COMMAC或MAL產生接收中斷,進入中斷處理;

k)捕獲的幀上交給主機;

l)網絡驅動重新分配幀緩沖區并初始化接收描述符以允許其被再次利用。

從上述步驟中可以看出,描述符表被網絡驅動和MAL頻繁訪問。由于這版智能網卡不支持物理上的一致性,描述符表存放于不可cache的DDR中,對它的每次訪問平均需37.1個cycle。若收包速度為1 000 000 pps,對每個包的處理只訪問描述符表一次,則需37.1 Mcycles用于描述符表訪問,占CPU總cycles(375 MHz)的10.0%??梢姡枋龇淼念l繁訪問是CPU資源在報文捕獲上的一大開銷。同時,每當處理完一個新幀,需重新分配緩沖區用于接收下一幀,而每次重新分配緩沖區平均需要755.0 cycles。這限制了智能網卡的最大報文捕獲能力不會超過49.7×104 pps。此外,接收中斷啟動后進入幀處理的開銷平均需要261.2 cycles。這部分的主要開銷是判斷中斷由哪個網口產生的查詢開銷等,浪費了CPU的部分資源。

網絡驅動的優化,重點在緩沖區的分配開銷和接收中斷對報文的處理開銷上。優化技術有網絡緩沖區優化、報文捕獲方式優化和驅動代碼優化。在下面的論述中,對采取了優化技術且會在海量網絡流實時處理系統中應用的驅動,稱之為優化驅動,以之與原驅動相區別。 

1.1網絡緩沖區優化

網絡緩沖區在網絡驅動中主要有兩種:一種是用于存放描述符表的緩沖區;另一種是用于接收幀的緩沖區(本文不考慮智能網卡的發送功能)。存放描述符表的緩沖區在網絡初始化時進行分配。接收幀的緩沖區在網絡初始化時分配一部分,用于初始化接收描述符表;在接收幀的過程中,根據所采取的分配策略不同,對幀緩沖區進行再分配或不再分配。此外,緩沖區可在DDR或SRAM中分配。網絡緩沖區的分配方式可按分配時機和分配位置進行分類。存放描述符表的緩沖區在初始化時已分配,因此對它的優化主要是在其分配位置上進行。

網絡緩沖區按分配的時機分類,可分為動態分配方式、預先分配方式和覆蓋方式。動態分配方式是指在準備接收下一新幀時通過系統調用為接收描述符分配緩沖區。它在需要緩沖區時才進行分配,具有內存開銷小的優點;但需調用內核函數動態地分配內存,它的CPU開銷大?,F在的網卡驅動一般采取的是動態分配方式,如E1000-3.15.9、智能網卡的原驅動等。預先分配方式是指在網絡初始化時預先分配一定數量的緩沖塊放入緩沖池中,在準備接收下一新幀時,從緩沖池中為接收描述符分配緩沖區。由于事先已分配好緩沖區,再進行緩沖區分配時只需進行指針操作,它的CPU開銷小。同時,它需要在初始化時分配足夠多的緩沖塊,為幀的處理贏得足夠的處理時間,在未處理完前,保證它不會被新幀覆蓋。因此,預先分配方式的內存開銷大。覆蓋方式是指在接收幀時,不再為接收描述符分配緩沖區,而是將緩沖區的數據拷貝到另一內存空間等待處理,重復利用此描述符所指向的緩存區接收新幀。它需要一次內存拷貝,因此覆蓋方式的CPU開銷比預先分配方式大。此外,用于備份接收描述符所指向的緩存塊上的數據緩沖區(稱之為備份緩沖區)若采取動態分配的方式,則覆蓋方式的CPU開銷是這三種方式中最大的分配方式;動態分配備份緩沖區時,可對報文頭進行分析獲得報文的大小,從而可根據報文的大小分配緩沖區。其他兩種分配方式預先不知道報文的大小,需根據最大傳輸單元的大小進行分配,因此它也是內存開銷最小的分配方式。若采取預先分配的方式分配備份緩沖區,它與動態分配方式在CPU開銷大小上的比較,取決于動態分配內存CPU開銷與內存拷貝CPU開銷間的比較。若內存分配過程中不出現等待,則其CPU開銷小于大小最小為64 Byte的內存拷貝CPU開銷。但在內存開銷上,會大于動態分配方式而等同于網絡緩沖區的預先分配方式。以前舊的驅動一般采取的是覆蓋方式。這三種方式的優缺點比較如表1所示。此外,在緩沖區的分配中,也可采取動態分配方式與預先分配方式相結合的緩沖區分配方法,在CPU開銷與內存開銷間取得某種平衡。

網絡緩沖區按其分配的位置分類,可分為SRAM方式和DDR方式。SRAM方式是指緩沖區從SRAM中分配。智能網卡有一塊用做二級cache的SRAM。考慮到網絡流處理時間局域性差的特點,屏蔽了SRAM的cache功能,而將它當一般內存使用。根據SRAM的物理特性,SRAM方式具有訪存快的優點,不足的是大小有限。由于它不可插拔,其擴展性差。DDR方式是指緩沖區從DDR中分配。它有足夠大的空間可用于分配,且擴展性好,可擴展至512 MB。它與SRAM方式相比,訪存速度慢,較耗CPU資源。智能網卡原驅動對網絡緩存區的分配采取的是DDR方式。為了敘述方便,筆者將采取DDR方式分配描述符表緩沖區(descriptor table in DDR,DTDDR),采取DDR方式分配幀緩沖區(frame buffer in DDR,FBDDR),采用SRAM方式分配描述符表緩沖區(descriptor table in SRAM,DTSRAM),而采用SRAM方式分配幀緩沖區(frame buffer in SRAM,FBSRAM)。

優化驅動在描述符表緩沖區分配方式上采取了SRAM方式,在幀緩沖區分配方式上采取了DDR方式。這是因為描述符表大小為8 KB,可以放入訪存速度快的256 KB SRAM中。而幀緩沖區需要的空間遠超過了SRAM的大小,對它采取了DDR方式。

1.2報文捕獲方式優化

報文捕獲方式是指智能網卡以中斷方式捕獲報文還是以查詢方式捕獲報文。中斷方式是指網絡驅動只有在接收到中斷信號后,才對描述符表進行掃描,處理已接收的報文。它具有CPU開銷小的優點。但每次中斷的啟動開銷導致它的CPU利用率低。查詢方式是指對描述符表進行反復掃描。有待處理的報文,就對其進行處理,處理完后繼續掃描;沒有待處理的報文,仍對描述符表進行掃描。查詢方式又可細分為暴力查詢方式和線程查詢方式。暴力查詢方式采取的是中斷與查詢相結合的方式,即當進入中斷處理后,就不再退出中斷,在中斷內對描述符表進行查詢。它與中斷方式相比,只有一次啟動開銷,CPU利用率高;它有更多的CPU資源用于捕獲報文,報文捕獲性能優于中斷方式;但它的健壯性差。接收中斷是硬件中斷,屬于高優先級中斷,其執行過程不會被打斷。一旦出錯,智能網卡無法切換到錯誤處理中斷中進行軟件修復。這也是它一旦丟包,丟包率為100%的原因。線程查詢方式是屏蔽接收中斷,創建一個線程對描述符表進行查詢。它雖然沒有中斷啟動開銷,但有線程的切換開銷。

考慮到暴力查詢方式健壯性差的缺點,優化驅動在報文捕獲方式上沒有對原驅動進行優化,仍沿用了原驅動的中斷方式。沒有采用線程查詢方式的原因是基于3.2節的測試結果。

1.3代碼優化

驅動代碼的優化,主要是針對海量網絡流實時處理系統這一特定應用進行的優化。主要在以下三個方面進行優化:

a)通用模式改為專用模式。原驅動是一個面對一般應用的通用驅動。它在接收中斷處理中進行鏈路層分析,判斷是否發往本機的幀。而海量網絡流實時處理系統需捕獲骨干網上所有的報文并進行分析,因此無須進行MAC地址的判斷。可刪除智能網卡的鏈路層分析功能。此外還屏蔽了一些上層不關心的信息處理,如錯誤幀的錯誤類型等。

b)描述符的刷新機制。是指為描述符分配空閑緩沖區后將其控制位置成就緒狀態,可用于接收新幀。原驅動對描述符的刷新采取的是分批刷新機制。它在接收中斷中將捕獲的所有幀處理完后,調用描述符刷新函數對描述符進行刷新。因此它的描述符利用率低。此外其代碼效率低下。首先它有一次函數調用開銷,其次多了一次while循環的開銷。在優化驅動中筆者對描述符采取了逐個刷新的機制,即每處理完一個幀,立即對其描述符項進行刷新,提高描述符的利用率,以緩解描述符資源有限的瓶頸。

c)四口查詢方式改為固定單一網口方式。智能網卡有四個網口。其中兩個千兆網口和兩個百兆網口,它們共用同一個接收中斷向量。筆者僅利用了其中的一個千兆口。每次接收中斷的處理,原驅動首先查詢是哪個網口產生中斷,然后進行相應的處理。在查詢前,須對查詢隊列加鎖,平均開銷為35.5 cycles。因此,原驅動的中斷啟動開銷比較大。為了降低中斷的啟動開銷,在優化驅動中,將接收中斷設置為僅服務于本文所使用的網口這個模式。

2實驗設計

2.1測試項目

在對智能網卡進行測試中,本文選擇RFC 2544建議的七種測試幀長[6],分別為64、128、256、512、1 024、1 280和1 518 Byte。智能網卡報文捕獲性能的測試指標,主要采用了吞吐量、丟包率和背對背幀數[7]這三個指標。吞吐量指的是被測設備不丟包情況下最大轉發速率。一般將它當做考察網絡設備性能的首要指標。丟包率是指被測設備在穩定的負載下由于缺少資源應轉發而沒有轉發的包占全部包的百分比。背對背(backtoback)幀指的是固定長度的數據幀以合法的最小幀間隔在傳輸媒介上突發一段較短的時間,一般以幀數多少來表示。

2.2實驗平臺

本文采用SmartBits 2000產生筆者所需的測試流??刂芐martBits 2000的軟件選擇SmartWindows 7.0。SmartBits是數據通信領域廣泛認同的,能夠對于網絡及設備進行性能測試和評估分析的標準測量儀表。SmartBits 2000數據網絡測試平臺具有較高的端口密度,支持包括以太網、令牌環、幀中繼、ATM在內的多種接口,能夠提供豐富的性能測試應用。SmartWindows是SmartBits的虛擬控制面板,具有靈活的流量編輯、發送、捕獲和分析功能。這兩者的結合能發出各種幀大小的線速以太網幀,也能以設定的速度勻速發出以太網幀。此外,還能設定背對背幀組的大小、組數以及組間的間隔,產生不同的burst流,進行背對背測試。

在利用可產生最高包速148.8×103 pps(64 Byte包線速)的SmartBits測試智能網卡的極限報文捕獲性能外,還設計了一個可產生模擬真實流的實驗平臺,測試智能網卡在真實流下的處理能力。模擬真實流是根據從某真實網關上采集的120 GB真實流的報文大小模擬的測試流。120 GB真實流的報文平均大小為486.4 Byte。其中64 Byte報文占了25.7%。為了能發出線速的模擬真實流,筆者在一臺配有普通千兆網卡的服務器上采用零拷貝技術[1]產生模擬真實流。服務器的配置為P3 1 GHz CPU,1 GB內存。它可以產生959.6 Mbps的模擬真實流,包速為24.4×104 pps。

2.3實驗方案

筆者設計了三種實驗方案。方案一利用SmartBits產生2.1節所述的不同大小幀的線速流,對上述三種測試指標進行測試,測試智能網卡在不同優化策略下的極限報文捕獲性能。在對丟包率進行測試時,測試速率選擇了從20%線速開始,按20%遞增速率,直到100%線速。而其他兩種,則采取了100%線速。方案二與方案三用于驗證智能網卡在報文捕獲時是否會成為系統的瓶頸。方案二分別利用SmartBits產生64 Byte幀線速和服務器產生959.6 Mbps模擬真實流,測試智能網卡接收中斷的最大處理能力。接收中斷處理能力的評測指標,筆者采取了在上述兩種測試流下,零丟包允許在中斷處理中加入偽操作的個數。一次偽操作,相當于一次cache miss訪存和對訪存讀出的數的一次正負比較。方案三測試采取預先分配方式和在接收中斷中啟動scatter/gather DMA將捕獲的報文傳送到主機的接收中斷的最大處理能力。其處理能力的評測指標仍采用方案二的評測指標,測試流與方案二相同。

3實驗結果及分析

3.1優化效果

3.1.1網絡緩沖區不同分配方式下的報文捕獲性能

在測試中,為了測得智能網卡的極限報文捕獲性能,筆者對覆蓋方式進行了修改,沒有對幀進行備份,極大限度地減少驅動對報文捕獲性能的影響。在下面的論述中,覆蓋方式均指已修改過的覆蓋方式。圖2是不同分配方式在吞吐量上的對比(圖中的吞吐量均以線速百分比衡量,下同)。

圖2中,有菱形標志的折線代表的是原驅動在不同幀長上的吞吐量。從圖可以看出:原驅動的報文捕獲性能最差,其最高吞吐量為27.7×104 fps;將動態方式改為覆蓋方式后,64 Byte幀吞吐量提高了1.5倍;在覆蓋方式的基礎上,將描述符表放入SRAM中,64 Byte幀吞吐量可獲得26%的提高;報文捕獲性能最好的驅動,是在幀緩沖區上采取了覆蓋方式和DDR方式,在描述符表緩沖區上采取了SRAM方式的驅動,最高吞吐量為89.3×104 fps;將幀緩沖區放入SRAM后,捕包性能下降。

智能網卡在物理上不支持cache一致性,描述符表由CPU和MAL共同維護。MAL是一個硬件核,用于管理內存和通信核(也稱之為COMMACs)間基于包的數據傳輸。為了不增加軟件的復雜性及CPU開銷,原驅動和優化驅動都在不可cache的內存中為描述符表分配緩沖區。筆者將SRAM配置成不可cache,用于存放會被頻繁訪問的描述符表。SRAM的不可cache性和驅動中有對幀的空間局域性高的處理,是幀緩沖區采取SRAM方式后捕包性能下降的原因。在下一步工作中,會將SRAM分為兩個緩沖區:一個設置成不可cache,放描述符表;另一個設置成可cache,放幀緩沖區。通過這個方案來獲得緩沖區放入SRAM中的優化效果。

3.1.2不同報文捕獲方式下的性能

本文對采取覆蓋方式,將描述符表放入SRAM中和將幀緩沖區放入DDR中這個組合方案的驅動在三種不同的報文捕獲方式下進行了測試。圖3是它們在吞吐量上的測試結果。

由圖3可看出,暴力查詢方式報文捕獲性能最好,中斷方式次之,線程查詢方式最差。暴力查詢方式可線速捕獲大小為64 Byte的幀,是中斷方式的1.67倍;中斷方式在捕獲大小不小于128 Byte幀時可達線速;而線程查詢方式僅在捕獲大小不小于256 Byte幀時才可達線速。從上述測試結果可以看出,中斷啟動開銷對報文捕獲性能影響很大;線程切換開銷大于中斷啟動開銷。

3.1.3代碼優化效果

本文對采取覆蓋方式,將描述符表放入SRAM中和將幀緩沖區放入DDR中這個組合方案的網絡驅動進行了部分代碼優化,即僅屏蔽了鏈路層的分析。經測試,它可以線速捕獲64 Byte幀,其優化效果相當于暴力查詢方式。與不優化相比,吞吐量提高了66.7%。

此外本文對采取覆蓋方式而描述符表和幀緩沖區全在DDR中的網絡驅動進行了1.3節所述的三個面的優化,并對其進行了測試。圖4是優化前后在吞吐量上的比較。從圖4可看出,優化效果很明顯。進行代碼優化后,可線速捕獲64 Byte幀。與不優化相比,吞吐量提高了1.1倍。

3.1.4可達線速的組合方案

通過對筆者所測得的大量數據進行統計分析,總共有九個對不同優化策略進行組合的方案可達到線速捕包。組合方案如表2所示。從優化策略被采用的頻率高低可看出,覆蓋方式的優化效果最好,其次是代碼優化。此外,從筆者所測得的數據還可看出,方案7、9這兩種組合方案是最好的方案。因為進行代碼優化后,不對幀進行任何處理,而MAL將幀從接收FIFO中DMA到內存的速度并不是報文捕獲的瓶頸(對這個結論進行了論證),所以方案7、9具有同樣的優化效果。若增加對幀的處理,而SRAM按3.1節所述進行配置,方案9將是在報文捕獲性能上最好的組合方案(待測試驗證)。

(注:表中打勾的是所選擇的優化策略)

優化的驅動采用的是方案4,并將覆蓋方式改為預先分配方式。這是因為SRAM的大小有限,筆者僅將描述符表放入SRAM中。暴力查詢方式的健壯性差,仍沿用原驅動的中斷方式。覆蓋方式若不進行對幀的備份,很容易丟包;若備份,開銷太大。本文選擇了折中方案預先分配方式。對在中斷處理中加有DMA功能的優化驅動進行測試,它可線速捕獲64 Byte幀。這表明智能報文捕獲平臺是一個實際可行的報文捕獲平臺。

3.2智能網卡報文處理能力極限測試結果與分析

3.2.1接收中斷的最大處理能力

本文采用2.3節所述的方案2對CPU主頻分別用375和500 MHz的智能網卡進行了接收中斷處理能力極限測試;驅動則采取了表2中的組合方案3。表3為其測試結果。

從表3可看出,在線速捕獲64 Byte幀的條件下,CPU主頻為375 MHz的智能網卡最多只能在接收中斷處理中加入6個偽操作數;而在959.6 Mbps的模擬真實流及零丟包下,最多可加入42個偽操作數。當將智能網卡的主頻調至500 MHz時,64 Byte幀線速下,最多可加入7個偽操作數,模擬真實流下可加入45個。這表明智能網卡在線速捕獲報文的條件下,還有能力對報文進行一些其他處理。

3.2.2具有DMA功能的接收中斷的最大處理能力

為了測得智能網卡在實際應用中的捕包性能,筆者對驅動進行了如下修改:采用預先分配方式;在接收中斷中將捕獲的報文采取scatter/gather DMA方式傳送到主機。稱啟動一次scatter/gather DMA傳送到主機的報文數,即啟動scatter/gather DMA的間隔所捕獲的報文數為scatter/gather DMA粒度。對采用不同scatter/gather DMA粒度的主頻為375與500 MHz的智能網卡進行了捕包性能測試,測試流為采用SmartBits產生的報文大小不同的線速流,主要測試不同scatter/gather DMA粒度對在捕獲不同大小報文時對捕包性能和將報文傳送到主機的DMA性能的影響。表4為采用不同scatter/gather DMA粒度的智能網卡在捕獲不同大小報文時的丟包率。

從表4可看出,在筆者所采用的粒度中,粒度越小,卡的捕包性能越差,DMA性能也越差;當報文大小不大于128 Byte時,對于所有選中的粒度,DMA速度與捕包速度相匹配;當粒度不小于128 Byte時,對于不同大小的報文,DMA速度均與捕包速度相匹配。粒度越小,接收中斷用于啟動scatter/gather DMA的開銷越大,卡的捕包性能越差,但對于整個系統來說,實時性越高。從捕包性能與實時性這兩方面進行考慮,128 Byte為所選中的scatter/gather DMA粒度中的最佳粒度。

筆者選用128 Byte作為scatter/gather DMA粒度,采取2.3節所述的方案3對CPU主頻分別采用375和500 MHz的智能網卡進行了接收中斷處理能力極限測試。表5為其測試結果。

從表5可看出,主頻為375 MHz的智能網卡在接收中斷中將捕獲的報文傳送到主機時,若再增加一條偽操作,在捕獲線速發送的64 Byte小報文時,將會導致4.74%的丟包率;而在959.6 Mbps的模擬真實流下,在零丟包的條件下,最多可加入38條偽操作數。當將智能網卡的主頻調至500 MHz時,64 Byte幀線速下,最多可加入2個偽操作數,模擬真實流下可加入41個。這表明主頻為500MHz的智能網卡在線速捕獲報文的條件下,還有能力對報文進行其他處理。此外,為了驗證主頻為375MHz的智能網卡在同等條件下也有能力對捕獲的報文進行一些處理,在接收中斷中將偽操作改為過濾校驗和錯誤報文和非TCP且非UDP報文,測試流中無校驗、錯誤的報文,均為TCP報文。測試表明,在接收中斷中增加這些對報文的處理后,仍能線速捕獲64 Byte小報文。若再增加過濾無數據的確認報文這項處理時,測試流中無確認報文,不能線速捕獲64 Byte小報文,丟包率為15.23%。

4結束語

本文對驅動在緩沖區的分配方式、報文捕獲方式和驅動代碼上進行了各種優化嘗試,并對采取不同優化策略的驅動分別進行了測試。測試結果表明,動態方式分配緩沖區對卡的報文捕獲性能影響最大,將它改為覆蓋方式后,報文捕獲性能可提高1.5倍;其次是代碼的冗余處理(針對特定應用),將代碼優化后,可獲得1.1倍的提高;僅進行上述兩種優化,就可使卡能線速捕獲64 Byte報文。同時,對優化驅動的測試也驗證了智能報文捕獲平臺在報文捕獲上不會成為系統的瓶頸。此外,智能網卡接收中斷處理能力的評測結果也表明了在智能網卡上實現部分TCP/IP協議卸載的可行性。

參考文獻:

[1]SAWICKI T.Technology strategist,corporate technology group,Intel corporation.server network I/O acceleration: fundamental to the data center of the future[J].Technology@Intel Magazine,2004:1-7.

[2]王佰玲,方濱興,云曉春.零拷貝報文捕獲平臺的研究與實現[J].計算機學報,2005,28(1):46-52.

[3]張佩珩,安學軍,高文學.面向機群互聯網絡的智能網設計[J].計算機工程與應用,2003,39(28):148190.

[4]劉勇,楊衛兵,陳耀,等.智能網卡驅動程序的性能評價[J].計算機工程,2005,31(14):42-44.

[5]EARLS A.Integrating TCP offload engines (TOEs)[EB/OL].200205.[2006-06-08].http://ajilonconsulting.ajilon.com/pdf/IntegratingTCPOffloadEngines0,pdf.

[6]BRADNER S,McQUAID J.RFC2544[EB/OL].1999-03.[2006-06-08].http://www.ietf.org/rfc/rfc2544.txt.

[7]BRADNER S.RFC1242[EB/OL].1997-07.[2006-06-08].http://www.faqs.org/rfcs/rfc1242.html.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 国产欧美日韩综合在线第一| 欧美激情第一欧美在线| 国产成人精品第一区二区| 久久精品66| 日本精品视频| AV网站中文| 极品私人尤物在线精品首页| 国产资源免费观看| 亚洲国产清纯| 九色在线观看视频| 91香蕉国产亚洲一二三区| 欧洲一区二区三区无码| 婷婷亚洲视频| 亚洲视频四区| 在线看片免费人成视久网下载| 国产成人久久综合一区| 99性视频| 一本久道久综合久久鬼色| 天堂中文在线资源| 5555国产在线观看| 97视频在线观看免费视频| 中文字幕亚洲精品2页| 婷婷五月在线视频| 91成人免费观看在线观看| 欧美在线伊人| 亚洲精品麻豆| 无码福利日韩神码福利片| 久久久精品国产亚洲AV日韩| 欧美a在线视频| 国产精品自在在线午夜区app| 国内嫩模私拍精品视频| 丁香五月亚洲综合在线| 日本欧美精品| 99热这里只有精品在线播放| 国产午夜福利亚洲第一| 999精品色在线观看| aⅴ免费在线观看| 亚洲综合色在线| 91蜜芽尤物福利在线观看| 美女无遮挡免费网站| 国产91丝袜在线播放动漫 | 美美女高清毛片视频免费观看| 日本免费一区视频| 99资源在线| 99久久国产综合精品女同| 亚洲男人的天堂视频| 一级毛片不卡片免费观看| 国产精品亚欧美一区二区| 国产精品亚洲一区二区三区z| 亚洲一区二区在线无码| 午夜国产大片免费观看| 国产91麻豆视频| AV老司机AV天堂| 国产呦精品一区二区三区下载 | 四虎亚洲精品| 又爽又大又黄a级毛片在线视频 | www亚洲天堂| 欧美成人免费午夜全| 国产精品一老牛影视频| 国产精品自拍合集| 欧美日韩国产在线播放| 国产91线观看| 呦视频在线一区二区三区| 免费A∨中文乱码专区| 久久网欧美| 精品亚洲国产成人AV| 国产香蕉在线视频| 欧美国产日韩一区二区三区精品影视| 欧美一区国产| 亚洲色图综合在线| 99热最新在线| 免费无遮挡AV| 在线观看欧美国产| 久久综合伊人77777| 亚洲国产成人精品一二区| 亚洲精品无码AⅤ片青青在线观看| 激情网址在线观看| 中字无码精油按摩中出视频| 精品国产成人高清在线| 丁香六月激情婷婷| 青青青国产在线播放| 国产男女免费视频|