Intel X710网卡VxLAN offload性能测试

1.  测试环境参数:

交换机:盛科E580

服务器:

Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz  384G RAM

Intel 800G SSD, Intel X710 万兆网卡

宿主机OS:

RHEL 7.1: 

kernel: 3.10.0

Libvirt: 1.2.17

QEMU: 1.5.3

Open vSwitch: 2.5.0

Ubuntu 16.04:  

kernel:4.4.0

Libvirt: 1.3.1

QEMU: 2.0.0

Open vSwitch: 2.5.0

虚拟机:RHEL 7.1, 2 vCPUs, 4G RAM, 40G Disk

网卡驱动:i40e,version: 1.5.25

NVM: 4.41 0x80001866 16.5.10

2. 配置步骤:

2.1. 交换机配置:

初始化配置:

1.连接到盛科交换机,传输速率设为115200

2.查看交换机软件版本,show version

如果版本不对,将新版本拷贝到交换机;

设置新版本启动(参照盛科交换机配置文档)

3.如果盛科交换机有初始化配置,可以删除。

cd flash:

delete startup-config.config 然后重启。

注意:重启时不要将当前内存中的东西写进文件。

配置交换机ip:

no management ip address dhcp

management ip address 192.168.201.60 255.255.255.0

management route add gateway 192.168.201.254

exit

write memory

配置端口(交换机1口配置示例)

config terminal

interface eth-0-1

speed 10G

no shutdown

exit

write memory

另一个端口以同样命令配置

2.2. 主机配置:

通过IPMI安装RHEL 7.1镜像:

安装Open vSwitch,更新libvirt:

1.首先删除redhat原有的yum ,因为redhat 原本的yum 没有注册为redhat用户是用不了的。

rpm -aq|grep yum|xargs rpm -e --nodeps

2.下载163的yum 安装包

wget http://mirrors.163.com/centos/7.2.1511/os/x86_64/Packages/yum-3.4.3-132.el7.centos.0.1.noarch.rpm

wget http://mirrors.163.com/centos/7.2.1511/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm

wget http://mirrors.163.com/centos/7.2.1511/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

wget http://mirrors.163.com/centos/7.2.1511/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm

3.进行安装yum

rpm -ivh *.rpm

4.更新repo文件

mv /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.repo.bak

如果没有这个文件就直接创建

sudo vim /etc/yum.repos.d/rhel-debuginfo.repo

在文件中写入

[base]

name=CentOS-$releasever - Base

baseurl=http://mirrors.163.com/centos/7.2.1511/os/$basearch/

gpgcheck=1

gpgkey=http://mirrors.163.com/centos/7.2.1511/os/x86_64/RPM-GPG-KEY-CentOS-7

#released updates

[updates]

name=CentOS-$releasever - Updates

baseurl=http://mirrors.163.com/centos/7.2.1511/updates/$basearch/

gpgcheck=1

gpgkey=http://mirrors.163.com/centos/7.2.1511/os/x86_64/RPM-GPG-KEY-CentOS-7

[extras]

name=CentOS-$releasever - Extras

baseurl=http://mirrors.163.com/centos/7.2.1511/extras//$basearch/

gpgcheck=1

gpgkey=http://mirrors.163.com/centos/7.2.1511/os/x86_64/RPM-GPG-KEY-CentOS-7

[centosplus]

name=CentOS-$releasever - Plus

baseurl=http://mirrors.163.com/centos/7.2.1511/centosplus//$basearch/

gpgcheck=1

enabled=0

保存退出

5. yum clean all

6 .  yum update 测试。

7.  安装 epel 源

sudo yum install epel-release

sudo yum repolist检查是否安装成功

8.  更新openstack安装源

yum install https://rdoproject.org/repos/rdo-release.rpm

yum upgrade

9.  安装ovs相关包

yum install openvswitch

10.  如果有内核更新,重启服务器

安装网卡驱动:

最新版网卡驱动下载地址:

https://downloadcenter.intel.com/downloads/eula/24411/Intel-Network-Adapter-Driver-for-PCI-E-Intel-40-Gigabit-Ethernet-Network-Connections-under-Linux-?httpDown=https%3A%2F%2Fdownloadmirror.intel.com%2F24411%2Feng%2Fi40e-1.5.25.tar.gz

参考压缩包里的README文档安装:

生成rpm安装包:

rpmbuild -tb i40e-1.5.25.tar.gz

安装生成的rpm包:

yum localinstall ~/rpmbuild/RPMS/x86_64/i40e-1.5.25-1.x86_64.rpm

卸载掉当前的驱动,载入新的驱动:

rmmod i40e; modprobe i40e

升级initrd使系统重启时载入新的驱动:

dracut --force

验证安装:

lsmod | grep -i vxlan

若有i40e,说明驱动安装成功

通过IPMI安装ubuntu16.04

安装openvswitch:

apt-get install openvswitch-switch

安装KVM及相关依赖包

sudo apt-get install qemu-kvm

sudo apt-get install qemu

sudo apt-get install virt-manager

sudo apt-get install virt-viewer

sudo apt-get install libvirt-bin

sudo apt-get install bridge-utils

ubuntu安装网卡驱动方法:

解压包:tar zxf i40e-1.5.25.tar.gz

cd  i40e-1.5.25/src/

makeinstall

卸载掉当前的驱动,载入新的驱动:

rmmod i40e; modprobe i40e

升级initrd使系统重启时载入新的驱动:

update-initramfs -u

验证安装:

lsmod | grep -i vxlan

若有i40e,说明驱动安装成功

搭建网络环境

Host1 192.168.201.110 网络配置:

ovs-vsctl add-br br0

ovs-vsctl add-port br0 ens1f0

ovs-vsctl add-port br0 tep0 -- set interface tep0 type=internal

ip addr add 172.16.68.20/24 dev tep0

ip link set tep0 up

ovs-vsctl add-br br1

ovs-vsctl add-port br1 vx1 -- set interface vx1 type=vxlan  options:remote_ip=172.16.68.10 options:key=5000 options:dst_port=4789

ip link set vx1 up

Host2 192.168.201.111 网络配置:

ovs-vsctl add-br br0

ovs-vsctl add-port br0 ens1f0

ovs-vsctl add-port br0 tep0 -- set interface tep0 type=internal

ip addr add 172.16.68.10/24 dev tep0

ip link set tep0 up

ovs-vsctl add-br br1

ovs-vsctl add-port br1 vx1 -- set interface vx1 type=vxlan  options:remote_ip=172.16.68.20 options:key=5000 options:dst_port=4789

ip link set vx1 up

配置好以后ping172.16.68.20的地址验证是否互通

添加新的vtep对的话就需要在br0上新建新的tep端口,新的br以及vx端口用来连接虚机和tep。新的tep不能和现有的tep在同一网段。

将网卡mtu改为1600:

ip link set ens1f0 mtu 1600

2.3. 虚机配置:

用virt-manager创建虚机时,虚机网卡接在br1的port br1上

给虚机网卡配置ip:

vm1:ifconfig eth0 10.0.1.100/24

vm2:ifconfig eth0 10.0.1.101/24

清除iptables配置

iptables -F

ping对方地址验证是否互通

2.4. 网络结构图

2.5. 测试参数配置:

iperf server端:

vm1: iperf3 -s

iperf client端:限定带宽512Mbps

vm2: iperf3 -c 10.0.1.100(vm1的ip地址) -b 512M -t 600

开启/关闭网卡vxlan offload:

ethtool -K ens1f0 rx-checksum on/off

ethtool -K ens1f0 tx-udp_tnl-segmentation on/off

3.  测试结果

 

 

Recv (CPU util%) ubuntu16.04

Send (CPU util%) rhel 7.1

 

VM pairs

us

sys

si

total

us

sys

si

total

No off

8

4.1

3.8

0.3

8.3

1.8

1.7

0.3

3.5

offload

 

1.9

0.4

0.2

2.6

0.5

1.5

0.3

2.3

No off

16

11.2

8.5

5.1

24.8

3.5

3.9

1

7.4

offload

 

6.3

4.6

4.6

16.4

1.8

3.1

1

5.9

No off

24

14.3

9.4

6.8

30.5

5.3

6.3

1.4

13

offload

 

10.9

6.7

6

23.6

2.9

4.8

1.3

9

No off

32

16.3

10.5

8.7

35.5

9.5

10.6

2

22.1

offload

 

14.2

8.5

8.1

30.8

6

7.6

1.9

15.5

No off

40

21.5

17.9

11.6

51

13.3

14.9

6.8

35

offload

 

19.5

14.3

10.9

44.7

10.8

10.3

6.6

27.7

No off

44

35.3

30.1

17.5

82.9

17.1

19.8

7.9

44.8

offload

 

30.1

29.6

17.5

77.2

14.5

15.1

7.5

37.1

限速200M带宽对比图

   

Host1                                                                   Host2

上图为测试限制带宽在200Mbits/sec, 在增加到40对虚机之后出现性能拐点,从数据看出offloading开启大概提升7%-60%左右的性能。流量越小提升的效果越明显,随着开启虚机对数越多流量越大,开启offloading提升的效果越小。开启offloading在45个并发,关闭offloading在42个并发。

 

VM pairs

Recv (CPU util%) ubuntu16.04

Send (CPU util%) rhel 7.1

No off

8

4.6

3.3

3.1

7.9

3.3

3.1

0.4

6.3

offload

 

2.5

2.2

3

4.7

1.5

2.1

0.6

3.6

No off

16

14

9

6.3

29.3

7.5

9.9

2

19.4

offload

 

11

6

6.1

23.1

5

8

2.1

15.1

No off

24

35

31

22.5

88.5

14.8

19.9

5

39.7

offload

 

30

28

20.4

78.4

13.1

16.2

3

32.3

限速512M带宽对比图

  

Host1                                            Host2

上图为限速512Mbits/sec,增加到24对虚机host1 cpu利用率88.5%,host2为39.7,从数据看开启offloading 提升11 -40%的空间,流量越大提升效果越小。不开启offloading可以20个并发,开启offloading可以24个并发。

Intel X710网卡VxLAN offload 性能测试的更多相关文章

  1. [development][dpdk][pktgen] 网卡收发包性能测试

    一: 多队列及中断信息收集 [root@T185 ~]# ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: RX Mini ...

  2. [网络技术][转]网卡的offload概念

    网络数据包分析 网卡Offload 对于网络安全来说,网络传输数据包的捕获和分析是个基础工作,绿盟科技研究员在日常工作中,经常会捕获到一些大小远大于MTU值的数据包,经过分析这些大包的特性,发现和网卡 ...

  3. intel 82599网卡(ixgbe系列)术语表

    Intel® 82599 10 GbE Controller Datasheet 15.0 Glossary and Acronyms 术语表 缩写 英文解释 中文解释 1 KB A value of ...

  4. 2008server安装Intel I217V网卡驱动

    问题:由于在职的是小公司,公司服务器都是DIY的,拒绝采购品牌服务器,所以配件都是自己DIY的,这样就会出现很多兼容性问题,例如服务器主板是AUS B85-PRO-Gamer,装的是服务器系统wind ...

  5. intel的网卡故障

    现象: 机器键盘接入,敲入无反应:机器无法ping通,整台机器假死状态. 查看message的日志,日志为如下内容: Aug :: TSMIS-CF kernel: ::19.0: eth0: Det ...

  6. Intel 82599网卡异常挂死原因

    前提背景: 生产环境上,服务器网络突然断链,ssh连接失败. 问题初步定位: 查找内核日志,得到网卡异常信息 Jan 24 11:52:43 localhost kernel: ixgbe 0000: ...

  7. [development][dpdk][pktgen] 网卡收发包性能测试-详细数据

    三层包测试 发包方式:192.168.20.205 发包工具:pktgen 发包网卡:i350 收包设备:1922.168.20.185 CPU:Intel(R) Xeon(R) CPU E5-262 ...

  8. imx6q 添加intel PCIE网卡

    TQ_IMX6Q开发板移植rtl8168-PCIE转千兆网卡 一.配置内核选项PCIE总线驱动支持 默认的内核配置可能没有把PCIE的总线驱动编入内核,所以需要确认是否把驱动编译到了内核里面. 配置好 ...

  9. VMware ESXi 7.0 U2 SLIC 2.6 & Unlocker 集成 Intel NUC 网卡、USB 网卡和 NVMe 驱动

    ESXi 7 U2 标准版镜像集成 NUC 网卡.USB 网卡 和 NVMe 驱动. 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u2-nuc-usb-n ...

随机推荐

  1. java监控函数执行时间

    java监控函数执行时间 http://blog.csdn.net/ycg01/article/details/1467542 java监控函数执行时间 标签: javathreadclassstri ...

  2. 简单的js实现网页时钟

    js实现时钟. <div id="clock"></div> <script type="text/javascript"> ...

  3. 利用hibernate实现oracle(每张表的ID)自动增长

    设置ID的增长策略是sequence,同时指定sequence的名字,最好每个表建一个sequence 例如创建一个序列:CREATE SEQUENCE DEPARTMENT_ID_SEQ MINVA ...

  4. (转)Eclipse中使用Ant

    Eclipse中使用Ant 分类: JAVA 工具 服务器2014-08-05 09:59 5507人阅读 评论(0) 收藏 举报 anteclipse http://286.iteye.com/bl ...

  5. map遍历的四种方式

    原文 http://blog.csdn.net/dayanxuqun/article/details/26348277 以下是map遍历的四种方式: // 一.推荐只用value的时候用,都懂的... ...

  6. HDU 5170 GTY's math problem

    数学题,a的b次方和c的d次方都很大,直接判断是做不出来的. 如果我们能找到一个函数F(x)是单调的,而F(X)的值又比较好算,那么可以通过比较F(X)的大小来判断自变量的大小. 令F(X)=log( ...

  7. CSS中margin和position:relative的定位问题

    一.代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  8. Java之Property类使用

    http://blog.csdn.net/hopestar2/article/details/6372883 在项目中经常用到各种配置文件,有.properties的,也有.xml格式的 都可以通过j ...

  9. 利用dokan作虚拟磁盘开发

    dokan是用户态的文件系统驱动,可以称之为fuse for windows.可以用来开发虚拟磁盘,即在“我的电脑”中虚拟出一个硬盘来,可以是硬盘,也可以是可移动磁盘或者网络硬盘. CreateFil ...

  10. ural2014 Zhenya moves from parents

    Zhenya moves from parents Time limit: 1.0 secondMemory limit: 64 MB Zhenya moved from his parents’ h ...