在滴滴雲DC2伺服器上搭建DPDK應用例項
隨著人們對高效能網路的要求,DPDK的應用也越來越廣,很多同學希望透過執行簡單的DPDK例項來進行學習實踐。但購買一臺物理機價格不菲,同時也不能在不用時釋放,而滴滴雲DC2伺服器例項可以根據實際使用需求來滿足要求。本文介紹瞭如何基於滴滴雲的DC2例項,來搭建DPDK的應用例項。
建立DC2
相關購買和建立流程可以檢視滴滴雲官網幫助文件,這裡不再做過多介紹,直接進入主題。
下載DPDK
本文以dpdk17.11.4版本為例
下載dpdk:wget
解壓:tar xvJf dpdk-17.11.4.tar.xz
編譯DPDK
進入DPDK目錄
執行:cd dpdk-stable-17.11.4
匯入環境變數
執行:export RTE_SDK=`pwd`
執行:export RTE_TARGET=x86_64-native-linuxapp-gcc
編譯安裝DPDK
執行:make install T=x86_64-native-linuxapp-gcc
-
編譯錯誤1
報錯:
make: *** /lib/modules/3.10.0-693.21.1.el7.x86_64/build: No such file or directory. Stop.
處理:需要修改核心編譯目錄
執行:cd /lib/modules/3.10.0-693.21.1.el7.x86_64/
執行:rm build
執行:ln -s /usr/src/kernels/3.10.0-693.21.1.el7.x86_64.debug build
-
編譯錯誤2
報錯:
/home/dc2-user/dpdk-stable-17.11.4/lib/librte_eal/linuxapp/eal/eal_memory.c:56:18: fatal error: numa.h: No such file or directory #include <numa.h>
處理:需要安裝numactl-devel
執行:yum install numactl-devel
安裝DPDK
配置大葉記憶體
執行:
echo 64 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages 分配64頁2M的大葉
mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
檢視配置結果: cat /proc/meminfo 會顯示對應的大葉分配了64頁
安裝igb_uio驅動
執行:
modprobe uio
insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
錯誤
insmod: ERROR: could not insert module x86_64-native-linuxapp-gcc/kmod/igb_uio.ko: Invalid module format
處理
執行:yum install kernel-devel 更新對應核心版本
執行:cd /lib/modules/3.10.0-693.21.1.el7.x86_64/ 進入到目錄
執行:rm build 刪除原有軟連線
執行:ln -s /usr/src/kernels/3.10.0-693.21.1.el7.x86_64 build 建立新的軟連線
再次重新編譯安裝DPDK即可
繫結網路卡
因為只有一塊網路卡,需要先Down掉網路卡,導致SSH連線失敗,所以需要先從控制平臺遠端連線過去(該步驟詳情可檢視滴滴雲幫助文件)。然後執行如下步驟 :
執行:ifconfig eth0 down Down掉介面
執行:./usertools/dpdk-devbind.py --status 檢視對應的PCI資訊
執行:./usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 繫結網路卡
執行hello world例項
-
編譯hello world例項
執行:export RTE_SDK=`pwd`
執行:export RTE_TARGET=x86_64-native-linuxapp-gcc
執行:cd example/helloworld
執行:make
-
執行hello world例項
執行:./build/helloword
顯示:(執行成功)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2218410/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於滴滴雲 DC2 搭建 VPP 應用例項
- 在滴滴雲 DC2 雲伺服器上搭建 Codis 實戰伺服器
- 在滴滴雲 DC2 雲伺服器上搭建 RabbitMQ 叢集伺服器MQ
- 在滴滴雲 DC2 雲伺服器上搭建 MongoDB 實戰伺服器MongoDB
- 在滴滴雲 DC2 雲伺服器上搭建 ZooKeeper 叢集實戰(一)伺服器
- 在滴滴雲 DC2 雲伺服器上搭建 ELK 日誌採集系統伺服器
- 在滴滴雲 DC2 伺服器上搭建 Gitlab+Jenkins 的整合環境伺服器GitlabJenkins
- 在滴滴雲 DC2 雲伺服器上使用 LVM 管理磁碟伺服器LVM
- 如何在滴滴雲 DC2 上搭建 ETCD 叢集
- 如何在滴滴雲 DC2 上搭建 MySQL 服務MySql
- 在滴滴雲 DC2 伺服器上部署 Ghost伺服器
- 如何在滴滴雲 DC2 上搭建 ProxySQL 中介軟體SQL
- 如何在滴滴雲 DC2 上搭建高可用 MySQL 叢集MySql
- 在滴滴雲上搭建 MongoDB 叢集 (一):MongoDB
- 滴滴雲上搭建 Gluster
- 在滴滴雲上搭建 Redis-Cluster 叢集Redis
- 在滴滴雲 DC2 編譯安裝最新 GCC 版本編譯GC
- 滴滴雲伺服器上安裝Oracle12cR2單例項資料庫伺服器Oracle單例資料庫
- 在滴滴雲上搭建 API-Gateway Kong 實踐APIGateway
- 使用 OVS-DPDK 加速滴滴雲網路
- 在ECS上輕鬆搭建RDS的從例項
- 在滴滴雲上學習 Kubernetes v1.13.0:叢集搭建
- 在阿里雲和騰訊雲的輕量應用伺服器上搭建Hadoop叢集阿里伺服器Hadoop
- 在滴滴雲 DC2 上部署 Manifold 文字收集與閱讀平臺
- 使用滴滴雲DC2,在CentOS7安裝Redis並進行安全加固CentOSRedis
- dd應用例項
- 基於滴滴雲伺服器搭建 Consul 叢集伺服器
- 模板與例項在系統中的應用
- 【DG】在Linux平臺上搭建單例項的dataguard--duplicateLinux單例
- ”innerHTML“的應用例項HTML
- 在滴滴雲 VPC 內搭建內網 DNS 服務內網DNS
- Unirech:無法訪問搭建在阿里雲國際版雲伺服器ecs例項上的網站如何排查阿里伺服器網站
- 基於滴滴雲 CentOS 伺服器搭建 Nexus Maven 私庫CentOS伺服器Maven
- 基於滴滴雲搭建 Lustre
- 如何在滴滴雲上用 Darknet 訓練 VOC
- AgileTC --滴滴開源測試用例管理平臺環境搭建
- 基於滴滴雲搭建安全穩定的 Memcached 伺服器伺服器
- 【DG】在Linux平臺上搭建單例項的dataguard--rman還原方式Linux單例