SR-IOV技术优化DPDK架构下Local port性能
来源:互联网 发布:微信网站怎么制作 知乎 编辑:程序博客网 时间:2024/05/22 04:17
转载请注明出处: http://blog.csdn.net/hliyuxin/article/details/53945201
DPDK程序中,网卡被DPDK igb_uio驱动接管,如果需要与linux系统数据交互,现在主要有KNI和TAP两种方式,两种方法都是创建虚拟设备用于收发报文。现在DPDK sample主要推荐kni方式, OVS-DPDK中bridge的local port使用的TAP虚拟网卡。如果系统数据平面都是通过DPDK转发,与linux只有少量控制报文交互,KNI和TAP基本能满足性能需要,单核3G左右的大包转发性能。
SR-IOV是一种虚拟化硬件加速方案,如下图,方案的初衷是为了虚拟机之间共享网络资源。具有SR-IOV功能的网卡,可以为一个物理端口(PF)新虚拟出多个虚拟端口(VF), 每个虚拟功能端口都能直接分配给一个虚拟机。SR-IOV能够让网络传输绕过软件模拟层,通过硬件L2 bridge按mac 地址分流,直接分配给虚拟机。
SR-IOV方案的初衷是给虚拟机使用虚拟功能端口(VF),我们可以将一个VF分配给Linux系统,即DPDK PF + linux VF方案。linux系统直接使用VF收发网络包。
相关配置
1.GRUB配置:
添加 iommu=pt参数
grub2-mkconfig -o /boot/grub2/grub.cfg
2. 需要升级到 ixgbevf-3.1.2 驱动
3. 网卡配置脚本:
#!/bin/bash
modprobe uio
insmod $DPDK_BUILD/kmod/igb_uio.ko
mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
BIND_TOOL="dpdk-devbind.py"
ifdown eth0
$DPDK_DIR/tools/$BIND_TOOL --bind=igb_uio eth0
echo 1 > /sys/bus/pci/devices/0000:01:00.0/max_vfs
测试性能结果
- iperf 测试 , linux VF 可以达到中大包万兆转发
[root@xxxx huanghuai]# iperf -c 192.168.103.233 -i 1
------------------------------------------------------------
Client connecting to 192.168.103.233, TCP port 5001
TCP window size: 19.3 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.103.3 port 16703 connected with 192.168.103.233 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 1.10 GBytes 9.42 Gbits/sec
[ 3] 1.0- 2.0 sec 1.10 GBytes 9.41 Gbits/sec
[ 3] 2.0- 3.0 sec 1.10 GBytes 9.41 Gbits/sec
[ 3] 3.0- 4.0 sec 1.10 GBytes 9.41 Gbits/sec
[ 3] 4.0- 5.0 sec 1.10 GBytes 9.42 Gbits/sec
[ 3] 5.0- 6.0 sec 1.10 GBytes 9.41 Gbits/sec
[ 3] 6.0- 7.0 sec 1.10 GBytes 9.42 Gbits/sec
[ 3] 7.0- 8.0 sec 1.10 GBytes 9.41 Gbits/sec
[ 3] 8.0- 9.0 sec 1.10 GBytes 9.41 Gbits/sec
[ 3] 9.0-10.0 sec 1.10 GBytes 9.42 Gbits/sec
[ 3] 0.0-10.0 sec 11.0 GBytes 9.41 Gbits/sec
2. pktgen 64bytes小包,DPDK PF可以达到万兆线速性能(1400 pps)
testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 201756895 RX-missed: 18 RX-bytes: 12105449760
RX-errors: 0
RX-nombuf: 0
TX-packets: 0 TX-errors: 0 TX-bytes: 0
Throughput (since last show)
Rx-pps: 14157055
Tx-pps: 0
############################################################################
在实际将SR-IOV应用到DPDK开发的系统中时,还要注意一些rx tx queue的相关设置,需要开发者对DPDK中的ixbge_pf.c等部分代码有一定理解。
- SR-IOV技术优化DPDK架构下Local port性能
- SR-IOV
- SR-IOV
- SR-IOV
- 【KVM】SR-IOV PCI-hotplug VT-d技术
- 网卡虚拟化技术:VMDq和SR-IOV
- I/O设备虚拟化技术SR-IOV的好处
- 网络I/O虚拟化,SR-IOV技术
- SR-IOV详解
- SR-IOV 简介
- SR-IOV-Presentation
- SR-IOV 简介
- virtio sr-iov
- 初识SR-IOV
- SR-IOV配置
- SR-IOV 简介
- 虚拟化中的SR-IOV
- sr-iov和HP服务器
- Android根据文件路径使用File类获取文件相关信息
- plsql远程连接数据库的详细步骤
- Android中的WebView(一)
- PHP绿色集成环境在云服务器上的应用,PHPWAMP在服务器上搭建网站案例
- Android笔记:自定义锁屏
- SR-IOV技术优化DPDK架构下Local port性能
- 修改Linux系统下的最大文件描述符限制
- SAP顾问的三重境界
- 1105. Spiral Matrix (25)解题报告
- android sqlite数据库数据类型
- linux学习笔记--route命令
- wordpress数据字典
- MyBatis 逆向工程生产源码(po、mapper)
- 2016总结-学习-健康-坚持