wget コマンドを使用して、公式リポジトリからDPDK 23.11のソースコード圧縮ファイルをダウンロードし、解凍します。wget https://fast.dpdk.org/rel/dpdk-23.11.tar.gztar -xf dpdk-23.11.tar.gzcd dpdk-23.11
numactl-devel 依存ライブラリをインストールします(root権限が必要です)。yum install numactl-devel -y
pip3 install meson ninja pyelftools
mesonを使用してプロジェクトをビルドします(最大論理コア数を1024に設定します)。meson build -Dmax_lcores=1024
ninjaを使用してプロジェクトをコンパイルします。ninja -C build
git clone http://dpdk.org/git/dpdk-kmods
git clone git://dpdk.org/dpdk-kmods
igb_uioディレクトリに移動してコンパイルします。cd ./dpdk-kmods/linux/igb_uiomake
uioおよびigb_uioカーネルモジュールを読み込みます(root権限が必要です)。modprobe uioinsmod ./dpdk-kmods/linux/igb_uio/igb_uio.ko
ethtool -i eth0 | grep bus-info

ifconfig eth0 down
igb_uioドライバにバインドします(実際のPCIアドレスに置き換えてください)。./usertools/dpdk-devbind.py --bind=igb_uio 0000:02:01.0 #0000:02:01.0は、実際のネットワークカードのPCIアドレスに置き換えてください。
echo 8192 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
C=4; Q=32; ./build/app/dpdk-testpmd -l 0-47 --proc-type primary --file-prefix bench -a 0000:1b:00.0 -- --burst=128 --nb-cores=$C --txd=4096 --rxd=4096 --txq=$Q --rxq=$Q --forward-mode=rxonly --stats-period=1
C=4; Q=32; S=10.31.0.80; D=10.31.0.240; ./build/app/dpdk-testpmd -l 0-47 --proc-type primary --file-prefix bench -a 0000:1b:00.0 -- --burst=128 --nb-cores=$C --tx-ip $S,$D --txonly-multi-flow --txpkts=64 --txd=4096 --rxd=4096 --txq=$Q --rxq=$Q --forward-mode=txonly --stats-period=1
パラメータ | 説明 |
-a 0000:1b:00.0 | 使用するネットワークカードのPCIアドレスを指定し、実際の環境に応じて置き換える必要があります。 |
--tx-ip S,D | TX側で送信するパケットの宛先IPアドレスは、CVMのネットワークカードアドレスに従って置き換えます。 |
--txonly-multi-flow | マルチフロー送信モードを有効にします(設定しない場合は単一フローのみを送信します)。 |
--txpkts=64 | パケット長(バイト、MACヘッダーを含む)です。PPSテストシナリオでは64を推奨します。 |
-l 0-47 | |
--txq / --rxq = $Q | 送信/受信キューの数量は、 ethtool -l eth0 | grep Combinedで確認できます。 |
--nb-cores=$C | 実際にテストに参加するCPUコア数です。2 ≤ C ≤ Qを推奨します。 |
--stats-period=1 | 統計情報を1秒ごとに1回出力します。 |

dpdk-devbind.pyツールを使用して、ネットワークカードをデフォルトドライバに復元します:./usertools/dpdk-devbind.py -b virtio-pci 0000:00:08.0 # 注意:0000:00:08.0は、実際のPCIアドレスに置き換えてください。
echo 0000:1b:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind #0000:1b:00.0は必要に応じて置き換えてください。echo virtio-pci > /sys/bus/pci/devices/0000\\:1b\\:00.0/driver_override #driver_overrideをvirtio-pciに設定します。echo 0000:1b:00.0 > /sys/bus/pci/drivers/virtio-pci/bind #virtio-pciに再バインドします。
echo 0 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
ifconfig eth1 up
wget https://lag-dpdk-1326316016.cos.ap-guangzhou.myqcloud.com/dpdk_core_advisor.sh
sh dpdk_core_advisor.sh eth0
lag_dpdk.patchをインストールしてください。lag_dpdk.patch パッチスクリプトをダウンロードします。wget https://lag-dpdk-1326316016.cos.ap-guangzhou.myqcloud.com/lag_dpdk.patch
git apply lag_dpdk.patch# 同等のコマンド(いずれか一つを選択してください)patch -p1 < lag_dpdk.patch
meson build -Dmax_lcores=1024ninja -C build
フィードバック