全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

网络性能测试方法

最近更新时间:2022-01-27 16:37:05

本文介绍如何使用pktgen工具测试云服务器的网络性能。

准备环境

1.准备两台云服务器,操作系统 CentOS 7.8 64位。一台做为发送端,一台做为接收端。
2.准备软件如下:

  • dpdk-19.11.2
  • pktgen-dpdk-19.12.0
  • lua-5.4.3

步骤一:编辑(发送端和接收端都需要操作)

1.下载lua5.4.3、dpdk-19.11.2、pktgen-dpdk-19.12.0

wget https://www.lua.org/ftp/lua-5.4.3.tar.gz
wget http://static.dpdk.org/rel/dpdk-19.11.2.tar.gz
wget https://git.dpdk.org/apps/pktgen-dpdk/snapshot/pktgen-dpdk-pktgen-19.12.0.zip

2.编译安装lua-5.4.3

tar zxvf lua-5.4.3.tar.gz
cd /root/lua-5.4.3
make
make install

编译完,执行 lua -v 看看当前的lua版本是否为5.4.3。 如果不是,则需要退出当前bash,重新登录一下虚机。

3.编译dpdk

编译前需要安装三个依赖包

yum -y install numactl-devel.x86_64
yum -y install elfutils-libelf-devel
yum -y install libpcap-devel

编译

tar zxvf dpdk-19.11.2.tar.gz
cd /root/dpdk-stable-19.11.2
export RTE_SDK=`pwd`
export RTE_TARGET=x86_64-native-linux-gcc
make config T=${RTE_TARGET}
make -j 4 install T=${RTE_TARGET}

4.编译pktgen

unzip pktgen-dpdk-pktgen-19.12.0.zip
cd /root/pktgen-dpdk-19.12.0
make

5.修改pktgen的发包带宽

编辑app/pktgen-stats.c,pktgen_get_link_status函数中,在rte_eth_link_get_nowait(pid, &info->link); (文件的262行)下面增加如下一句,强制修改速率为200G:

info->link.link_speed = 200000; // 200G

修改效果如下图所示。
image.png
保存后,需要再一次执行 ‘make’ 进行编译操作,操作如下。

cd app/
make

步骤二:环境配置

  1. 配置大页内存
    以下操作发送端和接收端都需要执行。请确认您的节点数量,然后执行以下对应的命令。

双节点

echo 8000 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
echo 8000 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

单节点

echo 8000 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

2.绑定网卡驱动到IGB_UIO

(1)执行ethtool -i eth0 找到eth0的bus-info(网卡的PCI地址)

[root@localhost pktgen-dpdk-19.11.2]# ethtool -i eth0
driver: virtio_net
version: 1.0.0
firmware-version:
expansion-rom-version:
bus-info: 0000:00:03.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

(2)执行 ifconfig 命令,记录发送端和接收端的IP地址和MAC地址。
(3)执行如下命令绑定eth0到IGB_UIO驱动(需要用到第1步中获取的bus-info 0000:00:03.0)

cd /root/dpdk-stable-19.11.2/x86_64-native-linux-gcc/kmod
modprobe uio
insmod igb_uio.ko
ip link set eth0 down
/root/dpdk-stable-19.11.2/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0

注意:绑定eth0到IGB_UIO驱动后,将无法通过ssh远程登录虚拟机,仅可以通过VNC或console方式访问。

步骤三:运行pktgen

1.执行如下命令运行pktgen (-w参数后跟eth0的bus-info)

cd /root/pktgen-dpdk-19.12.0/app/x86_64-native-linux-gcc/app
 ./pktgen  -c 0x1ffff -n 4 -w 0000:00:03.0 -- -p 0x1 -m [1-16:1-16].0 -T
  1. 在Pktgen终端中,依次执行以下命令,为发送端配置发送的流。(一共1000条流,变化的是目的端口,从2000递增到3000)
set 0 proto tcp
range 0 src mac start [$MAC]
range 0 src mac min [$MAC]
range 0 src mac inc 00:00:00:00:00:00
range 0 dst mac start ee:ff:ff:ff:ff:ff
range 0 dst mac min ee:ff:ff:ff:ff:ff
range 0 dst mac inc 00:00:00:00:00:00
range 0 src port start 10000
range 0 src port min 10000
range 0 src port max 10000
range 0 src port inc 0
range 0 dst port start 2000
range 0 dst port min 2000
range 0 dst port max 3000
range 0 dst port inc 1
range 0 proto tcp
range 0 src ip start [$Local_IP]
range 0 src ip min [$Local_IP]
range 0 src ip inc 0.0.0.0
range 0 size start 64
range 0 size min 64
range 0 size max 64
range 0 size inc 0
range 0 dst ip start [$Receive_IP]
range 0 dst ip min [$Receive_IP]
range 0 dst ip inc 0.0.0.0
enable all range

说明:

  • [$MAC]为发送端的MAC地址。
  • [$Local_IP]为发送端的IP地址。
  • [$Receive_IP]为接收端的IP地址。

3.配置完之后,执行 start 0 开始发包。

上述配置的报文大小为64字节,通常用于测试pps。 如果要测试带宽,则需要先 stop 0 停止发包,然后修改size为1500,修改步骤如下。

range 0 size start 1500
range 0 size min 1500
range 0 size max 1500
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈