DPDK+Pktgen 高速發包測試

參考博客

Pktgen概述

  • Pktgen,(Packet Gen-erator)是一個基于DPDK的軟件框架,發包速率可達線速。
  • 提供運行時管理,端口實時測量。
  • 可以控制 UDP, TCP, ARP, ICMP, GRE, MPLS and Queue-in-Queue等包。
  • 可以通過TCP進行遠程控制。

Pktgen官網

安裝使用過程

  • 版本:Ubuntu 16.04
  • DPDKL 18.02
  • cpu配置:
  • 1092889-20180719225635229-1779612315.png

1092889-20180719225722965-2029477125.png

安裝DPDK依賴:

  • DPDK安裝依賴項合集 環境合集
  • 安裝DPDK:Quick Start
$ git clone git://dpdk.org/dpdk or:git clone http://dpdk.org/git/dpdk
$ git clone git://dpdk.org/apps/pktgen-dpdk or:
$ git clone http://dpdk.org/git/apps/pktgen-dpdk

設置DPDK的環境變量:

$ export RTE_SDK=<DPDKInstallDir>//DPDK的安裝目錄
$ export RTE_TARGET=x86_64-native-linuxapp-gcc
$ cd $RTE_SDK
$ make install T=x86_64-native-linuxapp-gcc

安裝pktgen

$ cd <PktgenInstallDir>//進入pktgen的安裝目錄
$ make

修改cfg/default

  • 修改網卡的設備號,可在dpdk配置腳本中查詢:
# cd dpdk/usertools
# ./dpdk-setup.sh
  • 修改DPDK EAL 的命令行參數

  • 修改Pktgen的命令行參數

description = 'A Pktgen default simple configuration'# Setup configuration
setup = {'exec': ('sudo','-E'),'devices': ('01:00.0 01:00.1' //修改網卡設備PCI號,本機綁定了兩張10G網卡),'opts': ('-b igb_uio')}# Run command and options
run = {'exec': ('sudo','-E'),# Application name and use app_path to help locate the app'app_name': 'pktgen',# using (sdk) or (target) for specific variables# add (app_name) of the application# Each path is tested for the application'app_path': ('./app/%(target)s/%(app_name)s','%(sdk)s/%(target)s/app/%(app_name)s',),'dpdk': ('-l 0-2',//使用了三個邏輯核'-n 2',//內存通道數為2'--proc-type auto','--log-level 7','--socket-mem 1024',//大頁為1024'--file-prefix pg'),'blacklist': (#'-b 81:00.0 -b 81:00.1 -b 81:00.2 -b 81:00.3',#'-b 85:00.0 -b 85:00.1 -b 85:00.2 -b 85:00.3','-b 81:00.0 -b 81:00.1','-b 85:00.0 -b 85:00.1','-b 83:00.0'),'app': ('-T','-P','--crc-strip','-m [1].0',//邏輯核對1應端口號0,邏輯核0號作為主核不可綁定'-m [2].1'//邏輯核對1應端口號0,邏輯核0號作為主核不可綁定#'-m [19:20].2',#'-m [21:22].3'),'misc': ('-f', 'themes/black-yellow.theme')}
$ cd <PktgenInstallDir>/tools
$ ./run.py -s default  # setup system using the cfg/default.cfg file
$ cd <PktgenInstallDir>/tools
$ run.py default

若沒有出現正確的配置選項,可參照博客:
http://www.cnblogs.com/ZCplayground/p/9328735.html

https://mails.dpdk.org/archives/users/2018-July/003269.html

效果

  • 用網線把兩個網卡接口相連,運行
    1092889-20180719225755821-1124565300.png

  • 顯示包轉發速率到了每秒千萬級別,已完全達到高速發包的要求

轉載于:https://www.cnblogs.com/vancasola/p/9338982.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389062.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389062.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389062.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 商城api編寫_Python實現簡單的API接口

1. get方法import jsonfrom urlparse import parse_qsfrom wsgiref.simple_server import make_server# 定義函數&#xff0c;參數是函數的兩個參數&#xff0c;都是python本身定義的&#xff0c;默認就行了。def application(environ, start_response):# 定義文件請求的類型和…

opencv (一) 學習通過OpenCV圖形界面及基礎

opencv 學習通過OpenCV圖形界面基礎 用的函數有 cv.line(), cv.circle(),cv.rectangle(), cv.ellipse(),cv.putText() 常用參數 img : 想要繪制圖形的圖片color: 圖形的顏色&#xff0c; BGRthickness&#xff1a;厚度lineType: 線的類型&#xff0c; 8-connected、anti-al…

python精進之路 -- open函數

下面是python中builtins文件里對open函數的定義&#xff0c;我將英文按照我的理解翻譯成中文&#xff0c;方便以后查看。 def open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue): # known special case of open """  …

數據科學家編程能力需要多好_我們不需要這么多的數據科學家

數據科學家編程能力需要多好I have held the title of data scientist in two industries. I’ve interviewed for more than 30 additional data science positions. I’ve been the CTO of a data-centric startup. I’ve done many hours of data science consulting.我曾擔…

基于xtrabackup GDIT方式不鎖庫作主從同步(主主同步同理,反向及可)

1.安裝數據同步工具 注&#xff1a;xtrabackup 在數據恢復的時候比mysqldump要快很多&#xff0c;特別是大數據庫的時候&#xff0c;但網絡傳輸的內容要多&#xff0c;壓縮需要占用時間。 yum install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12…

excel表格行列顯示十字定位_WPS表格:Excel表格打印時,如何每頁都顯示標題行?...

電子表格數據很多的時候&#xff0c;要分很多頁打印&#xff0c;如何每頁都能顯示標題行呢&#xff1f;以下表為例&#xff0c;我們在WPS2019中演示如何每頁都顯示前兩行標題行&#xff1f;1.首先點亮頂部的頁面布局選項卡。然后點擊打印標題或表頭按鈕。2.在彈出的頁面設置對話…

opencv(二) 圖片處理

opencv 圖片處理 opencv 圖片像素操作 取像素點操作設置像素點取圖片塊分離&#xff0c;合并 b, g, r import numpy as np import cv2 as cvimg cv.imread(/Users/guoyinhuang/Desktop/G77.jpeg)# 獲取像素值 px img[348, 120] # 0 是y, 1 是x print(px)blue img[100, 1…

【NLP】語言模型和遷移學習

10.13 Update&#xff1a;最近新出了一個state-of-the-art預訓練模型&#xff0c;傳送門&#xff1a;李入魔&#xff1a;【NLP】Google BERT詳解?zhuanlan.zhihu.com1. 簡介長期以來&#xff0c;詞向量一直是NLP任務中的主要表征技術。隨著2017年底以及2018年初的一系列技術突…

TCPIP傳送協議

以下代碼實現在客戶端查詢成績&#xff08;數據庫在服務器端&#xff09;: 客戶端&#xff1a; static void Main(string[] args) { string str null; while (str ! Convert.ToString(0)) { Console.WriteLine("…

sql優化技巧_使用這些查詢優化技巧成為SQL向導

sql優化技巧成為SQL向導&#xff01; (Become an SQL Wizard!) It turns out storing data by rows and columns is convenient in a lot of situations, so relational databases have remained a cornerstone of data management in businesses across the globe. Structured…

Day 4:集合——迭代器與List接口

Collection-迭代方法 1、toArray() 返回Object類型數據&#xff0c;接收也需要Object對象&#xff01; Object[] toArray(); Collection c new ArrayList(); Object[] arr c.toArray(); 2、iterator() Collection的方法&#xff0c;返回實現Iterator接口的對象&#xff0c;…

oem是代工還是貼牌_代加工和貼牌加工的區別是什么

展開全部代加工就是替別人加工&#xff0c;貼別人的牌子。貼牌加工即商家自己不生產&#xff0c;而是委托其他生產企e68a8462616964757a686964616f31333365663431業生產&#xff0c;而品牌是自己的。拓展資料&#xff1a;OEM(Original Equipment Manufacture)的基本含義是定牌生…

KNN 算法--圖像分類算法

KNN 算法–圖像分類算法 找到最近的K個鄰居&#xff0c;在前k個最近樣本中選擇最近的占比最高的類別作為預測類別。 給定測試對象&#xff0c;計算它與訓練集中每個對象的距離。圈定距離最近的k個訓練對象&#xff0c;作為測試對象的鄰居。根據這k個緊鄰對象所屬的類別&#xf…

java核心技術-NIO

1、reactor&#xff08;反應器&#xff09;模式 使用單線程模擬多線程&#xff0c;提高資源利用率和程序的效率&#xff0c;增加系統吞吐量。下面例子比較形象的說明了什么是反應器模式&#xff1a; 一個老板經營一個飯店&#xff0c; 傳統模式 - 來一個客人安排一個服務員招呼…

物種分布模型_減少物種分布建模中的空間自相關

物種分布模型Species distribution models (SDM; for review and definition see, e.g., Peterson et al., 2011) are a dominant paradigm to quantify the relationship between environmental dynamics and several manifestations of species biogeography. These statisti…

BZOJ1014: [JSOI2008]火星人prefix

BZOJ1014: [JSOI2008]火星人prefix Description 火星人最近研究了一種操作&#xff1a;求一個字串兩個后綴的公共前綴。 比方說&#xff0c;有這樣一個字符串&#xff1a;madamimadam&#xff0c;我們將這個字符串的各個字符予以標號&#xff1a; 序號&#xff1a; 1 2 3 4 5 6…

redis將散裂中某個值自增_這些Redis命令你都掌握了沒?

本章主要內容字符串命令、列表命令和集合命令散列命令和有序集合命令發布命令與訂閱命令其他命令本章將介紹一些沒有在第1章和第2章出現過的Redis命令&#xff0c;學習這些命令有助于讀者在已有示例的基礎上構建更為復雜的程序&#xff0c;并學會如何更好地去解決自己遇到的問題…

asp.net的MessageBox

public class MessageBox{ public enum MsgButton { /// <summary> /// 只是OK按鈕 /// </summary> OK 1, /// <summary> /// 提示是否確定 /// </summary> OKCancel 2 } publ…

深入理解激活函數

為什么需要非線性激活函數&#xff1f; 說起神經網絡肯定會降到神經函數&#xff0c;看了很多資料&#xff0c;也許你對激活函數這個名詞會感覺很困惑&#xff0c; 它為什么叫激活函數&#xff1f;它有什么作用呢&#xff1f; 看了很多書籍上的講解說會讓神經網絡變成很豐富的…

如何一鍵部署項目、代碼自動更新

為什么80%的碼農都做不了架構師&#xff1f;>>> 摘要&#xff1a;my-deploy:由nodejs寫的一個自動更新工具,理論支持所有語言(php、java、c#)的項目,支持所有git倉庫(bitbucket、github等)。github效果如何?如果你的后端項目放在github、bitbucket等git倉庫中管理…