本科畢業(yè)設(shè)計(jì)摘要

高速采集驅(qū)動(dòng)庫(kù)的機(jī)制及性能研究

Research on Mechanism and Performance of High - speed packet capture Driver Library

1.研究業(yè)內(nèi)實(shí)時(shí)報(bào)文采集的不同機(jī)制;

2.設(shè)計(jì)實(shí)驗(yàn),實(shí)測(cè)不同用例下不同驅(qū)動(dòng)庫(kù)的性能;

3.根據(jù)研究結(jié)果提高現(xiàn)有采集軟件性能。

實(shí)驗(yàn):


1、發(fā)包程序

pf_ring:zsend

dpdk: pktgen-dpdk (1.8版本不能運(yùn)行)

2、性能分析

vtune

perf

3、性能測(cè)試

單線程run to completion 對(duì)比(pf_ring 和 DPDK性能進(jìn)行對(duì)比,基于不同報(bào)文長(zhǎng)度)

單Rx雙worker的pipeline模型線程分布? NUMA (利用最小長(zhǎng)度報(bào)文進(jìn)行測(cè)試)

改變網(wǎng)卡隊(duì)列長(zhǎng)度對(duì)收包速率的影響(微小影響)

單Rx的pipeline模型worker數(shù)量變化

單Rx的pipeline模型線程棧分布

雙Rx雙Worker的pipeline模型線程分布

雙接收隊(duì)列時(shí),網(wǎng)卡RSS結(jié)果均衡程度影響速率(有影響)

多線程run to completion 對(duì)比? NUMA

DPDK多生產(chǎn)者多消費(fèi)者(mpmc)的可擴(kuò)展性分析

xDR線程分布

4、理論基礎(chǔ)

Linux內(nèi)核處理報(bào)文的過(guò)程(結(jié)合內(nèi)核代碼)(附帶了解 IRQ、軟中斷、RPS)

RPS技術(shù):

RPS(Receive Packet Steering)多核CPU單隊(duì)列網(wǎng)卡條件下,在軟件層面模擬實(shí)現(xiàn)硬件網(wǎng)卡的多隊(duì)列。

在網(wǎng)卡驅(qū)動(dòng)函數(shù)里對(duì)每一條流依據(jù)四元組(SIP,SPORT,DIP,DPORT)做Hash,再根據(jù)Hash標(biāo)志將軟中斷的負(fù)載均衡到各個(gè)CPU

RFS(Receive Flow Steering)確保應(yīng)用程序處理的CPU和軟中斷處理的CPU是同一個(gè),可以充分利用CPU的Cache

Linux報(bào)文采集:

Linux報(bào)文采集通常采用TCP/IP協(xié)議棧的嵌套字實(shí)現(xiàn)。嵌套字主要有三種類型

流式嵌套字、數(shù)據(jù)報(bào)嵌套字、原始嵌套字

tcpdump設(shè)置鉤子函數(shù)復(fù)制報(bào)文,libpcap直接使用原始嵌套字方式。以上兩種都是基于內(nèi)核協(xié)議棧,報(bào)文獲取來(lái)自于內(nèi)核協(xié)議棧的復(fù)制

PF_Ring:

高速數(shù)據(jù)包采集庫(kù),提供兩個(gè)層次的庫(kù)供用戶使用。一個(gè)層次對(duì)傳統(tǒng)報(bào)文處理方法做了改進(jìn),基本處理依然依賴內(nèi)核態(tài)的中斷。第二個(gè)層次是對(duì)報(bào)文處理方法進(jìn)行大量的改進(jìn),性能提升顯著,不過(guò)還未開源。

NUMA相關(guān)理論

報(bào)文處理中的負(fù)載均衡的了解(RSS、RPS、pipeline處理模型)

5、筆記

testpmd

啟動(dòng)testpmd程序 ./app/testpmd -c 0xf -n 4 -- -i

程序啟動(dòng)后你可以執(zhí)行help命令查看幫助信息;

start ?啟動(dòng)數(shù)據(jù)轉(zhuǎn)發(fā);

stop ? 停止并統(tǒng)計(jì)數(shù)據(jù)轉(zhuǎn)發(fā)結(jié)果

程序啟動(dòng)后默認(rèn)是io轉(zhuǎn)發(fā)模式,

set ?fwd ?io|mac|rxonly|txonly|csum ?設(shè)置其他轉(zhuǎn)發(fā)模式,如 ? ?set ?fwd ?mac ? 設(shè)置為mac轉(zhuǎn)發(fā)模式;

6、階段任務(wù)

#### **任務(wù)描述**

- 1. 了解DPDK,學(xué)習(xí)DPDK官網(wǎng)文檔、電信的DPDK資料、intel ppt

- 2. 在服務(wù)器83.11上安裝DPDK

- 3. 運(yùn)行tcpreplay

- 4. 運(yùn)行l(wèi)2fwd,l3fwd實(shí)驗(yàn)一下報(bào)文在設(shè)備之間的傳輸

#### **輸出:**

- 每天在issue上記錄一下當(dāng)天完成的內(nèi)容。

#### **時(shí)間:**

- 10月12日前學(xué)習(xí)DPDK文檔

- 10月14日前安裝DPDK,運(yùn)行DPDK的testpmd和tcpreplay,同時(shí)繼續(xù)學(xué)習(xí)DPDK文檔

- 10月15日前安裝運(yùn)行l(wèi)2fwd和l3fwd例程,同時(shí)繼續(xù)學(xué)習(xí)DPDK文檔

#### **任務(wù)描述**

- 1. 使用zsend及其命令行配置

- 2. 使用pktgen-dpdk及其配置腳本

- 3. 學(xué)習(xí)vtune文檔并實(shí)驗(yàn)

- 4. 使用perf及其命令行配置

#### **輸出:**

- 每天在issue上記錄一下當(dāng)天完成的內(nèi)容。

#### **時(shí)間:**

10月28日前

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容