dperf的运行机制与iperf存在本质差异,其核心在于模拟真实业务流量而非单纯打流。经过查阅文档才意识到,需先定义场景模板、配置会话参数及报文行为,才能正确发起压测。
以下是正确的操作流程: 克隆源码 git clone https://github.com/baidu/dperf.git cd dperf
make
./build/dperf -h
在进行编译的时候出现下面的错误: root@oitech-pc:/home/oitech/桌面/dperf# make /bin/sh: 1: pkg-config: not found Makefile:44: *** "no installation of DPDK found"。 停止。
表明编译dperf需要依赖DPDK,但是系统中没有安装DPDK
将dperf安装到系统路径中:sudo cp build/dperf /usr/local/bin/
从源码安装DPDK:
sudo apt install -y build-essential meson ninja-build python3-pip
wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz tar -xf dpdk-22.11.4.tar.xz cd dpdk-22.11.4
meson build cd build ninja sudo ninja install
echo 'export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
这个环境变量复制不好可以扔给AI进行查询
cd /home/oitech/桌面/dperf make clean make
出现编译错误,麒麟软件源中没有对librte_net_bond的驱动,直接在makefile中将相应的驱动进行移除,然后在进行编译:
cd dperf
cp Makefile Makefile.backup
sed -i 's/-lrte_net_bond//g' Makefile
make clean make
查看官方文档 进行相应的参数的补充(完成)
现在查看dpdk是否安装正确,以及相应的网卡是否绑定到PMD驱动(dpdk相应的驱动没有完成)
查看相应网卡的地址:lspci
在DPDK目录下,将网卡驱动绑定到DPDK下: 网卡一般处于活动状态: 步骤1:需要先关闭网络接口:网卡:eno1 关闭eno1接口:ip link set eno1 down 验证接口状态:ip link show eno1
步骤2:将网卡重新绑定到vfio-pci:网卡号:01:00.0 绑定:./usertools/dpdk-devbind.py --bind=vfio-pci 0000:01:00.0 验证绑定结果:./usertools/dpdk-devbind.py --status net
预期成功输出: Network devices using DPDK-compatible driver ============================================ 0000:01:00.0 'I210 Gigabit Network Connection' drv=vfio-pci unused=igb
Network devices using kernel driver =================================== 0000:02:00.0 'I210 Gigabit Network Connection' if=eno2 drv=igb unused=vfio-pci Active
然后设置大页内存:
echo 1024 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
sudo mkdir -p /dev/hugepages sudo mount -t hugetlbfs nodev /dev/hugepages
grep Huge /proc/meminfo
预期成功输出: HugePages_Total: 1024 HugePages_Free: 1024 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB
两种文件示例: server.conf: mode server server 192.168.100.1 listen 5201 1 port 0000:01:00.0 192.168.100.1 192.168.100.2 duration 10s cps 100 client 192.168.100.2 1 cpu 0
client.conf: mode client cpu 1 port 0000:02:00.0 192.168.100.2 192.168.100.1 duration 10sx cps 100 client 192.168.100.2 server 192.168.100.1
在进行dpdk的配置的时候,不知道它的相应的网口的ip该如何进行配置: 在将网口的驱动挂载到dpdk之后,不能使用ifconfig等查询网口的ip地址,但是在配置文件中又需要相应的ip地址,那么根据官方文档的描述,不需要查询相应的ip,直接编辑一个虚拟的ip地址,进行相互连接就可以,例如服务器:192.168.100.1 客户端:192.168.100.2
在后面环境配置完成后,进行相应的文件配置的时候,使用配置文件,在官方进行查询 附带工具:
dpdk暂时传不上来,我用的22.11.10,可以在dpdk的官网上进行下载,这个dpdk的环境一定要搭建好,环境变量和编译这些涉及到系统环境的时候一定要记得检查对比
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。