说说云网络性能测试
发布时间:2021-11-06 03:16:07 所属栏目:应用 来源:互联网
导读:有几个云上的小伙伴想测测VPC网络性能,于是写了一些dpdk代码在阿里云上做了一个实验,也适用于其它云 安装相关的库 使用root登录,更新一下源 #备份原有的配置文件 mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ #使用阿里云
有几个云上的小伙伴想测测VPC网络性能,于是写了一些dpdk代码在阿里云上做了一个实验,也适用于其它云 安装相关的库 使用root登录,更新一下源 #备份原有的配置文件 mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ #使用阿里云的源覆盖 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel* sudo dnf config-manager --set-enabled PowerTools yum makecache yum update yum groupinstall "Development tools" yum install gcc-gfortran kernel-modules-extra tcl tk tcsh terminator tmux kernel-rpm-macros elfutils-libelf-devel libnl3-devel meson createrepo numactl-devel pip3 install pyelftools 启用iommu sudo vi /etc/default/grub //在 GRUB_CMDLINE_LINUX 行添加"intel_iommu=on iommu=pt" //保存退出 然后更新grub并重启系统 sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg sudo reboot 安装DPDK CentOS上需要添加/usr/local路径, 主要是LD_LIBRARY_PATH PATH 和 PKG_CONFIG_PATH 以及sudo的path sudo vi /etc/ld.so.conf.d/dpdk.conf >>添加如下path /usr/local/lib64 >>退出 sudo ldconfig vim ~/.bashrc >>添加如下path export PATH=/usr/local/bin:$PATH export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:${PKG_CONFIG_PATH} 保存后source source ~/.bashrc sudo vim /etc/sudoers >>将secure_path添加/usr/local/bin Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin 然后解压dpdk,并编译安装 wget http://fast.dpdk.org/rel/dpdk-21.05.tar.xz tar xf dpdk-21.05.tar.xz cd dpdk-21.05 meson build -D examples=all cd build ninja sudo ninja install sudo ldconfig 设置Hugepage和bind接口 dpdk-hugepages.py --setup 4G modprobe vfio-pci dpdk-devbind.py -s Network devices using kernel driver =================================== 0000:00:05.0 'Virtio network device 1000' if=eth0 drv=virtio-pci unused=vfio-pci *Active* 0000:00:06.0 'Virtio network device 1000' if=eth1 drv=virtio-pci unused=vfio-pci *Active* 注意虚拟机环境需要noniommu_mode ifconfig eth1 down echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode dpdk-devbind.py -b vfio-pci 0000:00:06.0 验证 dpdk-devbind.py -s Network devices using DPDK-compatible driver ============================================ 0000:00:06.0 'Virtio network device 1000' drv=vfio-pci unused= Network devices using kernel driver ===================================0000:00:05.0 'Virtio network device 1000' if=eth0 drv=virtio-pci unused=vfio-pci *Active* 检查接口支持情况 下载代码 cd ~ wget https://github.com/zartbot/learn_dpdk/archive/refs/heads/main.zip unzip main.zip cd learn_dpdk-main/ 编译 .txmode = { .mq_mode = ETH_MQ_TX_NONE, } }; 修改portinit.c 关闭RX-CHECKSUM OFFLOAD, 注释掉下面这段: if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_CHECKSUM) { printf("port[%u] support RX cheksum offload.n", port); port_conf.rxmode.offloads |= DEV_RX_OFFLOAD_CHECKSUM; } 最后测速大概3.3Mpps左右,接近官方售卖时的4Mpps 测试结果和官方售卖的4Mpps一致了。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |