工具準(zhǔn)備: vmware + Ubuntu 16.04 Server 版本
1.vmware 添加兩塊網(wǎng)卡
橋接網(wǎng)卡作為 DPDK 運(yùn)行的網(wǎng)卡
NAT 網(wǎng)卡作為 ssh 連接的網(wǎng)卡
2.修改網(wǎng)卡配置信息
將 ethernet0.virtualDev 由 e1000 修改 vmxnet3坐慰,因?yàn)?vmware 的 vmxnet3 支持多隊(duì)
列網(wǎng)卡
3.修改 ubuntu 系統(tǒng)的啟動(dòng)參數(shù)
物理機(jī):default_hugepages=1G hugepagesz=1G hugepages=20 isolcpus=0-7
虛擬機(jī):default_hugepages=1G hugepagesz=2M hugepages=1024 isolcpus=0-2
4.查看系統(tǒng)是否支持多隊(duì)列網(wǎng)卡
執(zhí)行:cat /proc/interrupts
5.編譯 DPDK
下載 dpdk :?
https://core.dpdk.org/download/
可以通過(guò) usertools/dpdk-setup.sh
64 位系統(tǒng)選擇 39.
編譯完會(huì)多出 x86_64-native-linux-gcc 的文件夾
6.設(shè)置 DPDK 的環(huán)境變量
# export RTE_SDK=/home/dpdk
# export RTE_TARGET=x86_64-native-linux-gcc
7.執(zhí)行 testpmd
執(zhí)行
# /usertools/dpdk-setup.sh
選擇 43 插入 IGB_UIO 模塊摘完, 選擇網(wǎng)卡為 vmxnet3 會(huì)加載此模塊
選擇 44 插入 VFIO 模塊栽连,選擇網(wǎng)卡為 e1000 會(huì)加載此模塊
選擇 49 綁定 igb_uio 模塊售貌, 也可以退出,通過(guò)命令來(lái)執(zhí)行煞赢。
# ifconfig eth0 down
# /usertools/dpdk-devbind.py --bind=igb_uio eth0
選擇 53 運(yùn)行 testpmd
> show port info 0
8.編譯 DPDK 程序
進(jìn)入 example/helloworld ,
可以直接 make,
也可以通過(guò) gcc 命令編譯
# gcc -o helloword main.c -I /usr/local/include/dpdk/ -ldpdk -lpthread -
lnuma -ldl
?
附:dpdk學(xué)習(xí)體系偷溺,關(guān)注 私信回復(fù):1,領(lǐng)取對(duì)應(yīng)學(xué)習(xí)視頻
專注于C/C++悴势,Linux陨享,Nginx册烈,ZeroMQ,MySQL,Redis诲侮,fastdfs缓淹,MongoDB捷绒,ZK袄友,流媒體,CDN昔穴,P2P镰官,K8S,Docker吗货,TCP/IP泳唠,協(xié)程,DPDK等等多個(gè)知識(shí)點(diǎn)高級(jí)技術(shù)分享