>
>
>Yes that test gives much better results without DPDK – I saw 18Gbps. The 
>reason is that OVS-
>DPDK does not support TSO. But DPDK does better with UDP and packets/second 
>tests. Some
>patches were proposed - google ovs dpdk tso.
>

Hi,

As Darragh mentioned, DPDK does not currently support TSO or LRO (both of which 
are typically available for kernel-based interfaces), which is why you observe 
a performance deficit.

I recently pushed an RFC patch for TSO support for OvS v2.6.1 - this may help 
boost your numbers: https://patchwork.ozlabs.org/patch/749564/ 

Thanks,
Mark 

>You could try using more queues - 
>http://docs.openvswitch.org/en/latest/topics/dpdk/vhost-
>user/#adding-vhost-user-ports-to-the-guest-qemu
>
>Darragh.
>
>From: [email protected] 
>[mailto:[email protected]] On
>Behalf Of [email protected]
>Sent: 20 April 2017 08:35
>To: ovs-discuss <[email protected]>
>Subject: [ovs-discuss] OVS-DPDK performance problem in Openstack Ocata
>
>Hi,
>
>I tested ovs-
>dpdk(compiled using ovs 2.6.1) under openstack ocata, and I found the 
>performance is low.
>Can someone give me some suggestions?
>
>iperf3 througput test between 2 VMs on the same compute node gives bandwidth: 
>6.82 Gbps. Inte
>l 82599ES 10-Gigabit SFI/SFP+ NICs with igb_uio are used.
>====================================
>Transfer          Bandwith          Retr
>7.94 GBytes       6.82 Gbits/sec   17119      sender
>7.94 GBytes       6.82 Gbits/sec              receiver
>
>Envionment:
>1 compute node with 2 VM(dpdk), iperf3 are running under the 2 VMs.
>compute node hardware: Huawei RH2288H V3, E5-2640 [email protected] GHZ*2, DDR3*16G*8
>
>
>[root@EXTENV-10-254-9-7 ~]# top
>top - 16:17:10 up 30 min,  5 users,  load average: 5.36, 5.53, 4.26
>Tasks: 387 total,   1 running, 386 sleeping,   0 stopped,   0 zombie
>%Cpu(s): 18.4 us,  0.3 sy,  0.0 ni, 81.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
>KiB Mem : 26357619+total,   346508 free, 26285744+used,   372236 buff/cache
>KiB Swap: 13421772+total, 13421772+free,        0 used.   372340 avail Mem
>
> 3841 root      10 -10 8081120 366680  12928 S 402.0  0.1  76:02.16 ovs-
>vswitchd
>
> 4080 root      20   0 1984008 233264  11880 S 100.0  0.1  10:50.82 qemu-
>kvm
>
> 4068 root      20   0 1981960 266368  11880 S  94.7  0.1  10:23.92 qemu-
>kvm
>
>  249 root      25   5       0      0      0 S   3.7  0.0   3:10.67 ksmd
>
>
> 1094 root      20   0    4368    676    520 S   0.7  0.0   0:02.61 rngd
>
>
> 3986 neutron   20   0  350596  85664   5180 S   0.3  0.0   0:05.27 neutron-op
>
>
>[root@EXTENV-10-254-9-7 ~]# sudo top -p `pidof ovs-vswitchd` -H -d1
>top - 16:31:18 up 44 min,  5 users,  load average: 4.12, 4.34, 4.39
>Threads:  41 total,   4 running,  37 sleeping,   0 stopped,   0 zombie
>%Cpu(s): 12.5 us,  0.3 sy,  0.0 ni, 87.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
>KiB Mem : 26357619+total,   347080 free, 26285494+used,   374160 buff/cache
>KiB Swap: 13421772+total, 13421772+free,        0 used.   373876 avail Mem
>
>  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
>
>
> 3953 root      10 -
>10 8081120 366680  12928 R 99.9  0.1  32:54.06 pmd93
>
> 3950 root      10 -
>10 8081120 366680  12928 R 99.9  0.1  32:54.07 pmd90
>
> 3951 root      10 -
>10 8081120 366680  12928 R 99.9  0.1  32:54.07 pmd91
>
> 3952 root      10 -
>10 8081120 366680  12928 R 99.9  0.1  32:54.07 pmd92
>
> 3841 root      10 -10 8081120 366680  12928 S  0.0  0.1   1:03.48 ovs-
>vswitchd
>
> 3842 root      10 -10 8081120 366680  12928 S  0.0  0.1   0:00.00 vfio-sync
>
>
>[root@EXTENV-10-254-9-7 ~]# ovs-appctl dpif-netdev/pmd-stats-show
>pmd thread numa_id 0 core_id 6:
>      emc hits:555098657
>      megaflow hits:27
>      avg. subtable lookups per hit:1.19
>      miss:43
>      lost:0
>      polling cycles:2617584158048 (74.68%)
>      processing cycles:887414434068 (25.32%)
>      avg cycles per packet: 6314.19 (3504998592116/555098759)
>      avg processing cycles per packet: 1598.66 (887414434068/555098759)
>pmd thread numa_id 0 core_id 7:
>      emc hits:0
>      megaflow hits:0
>      avg. subtable lookups per hit:0.00
>      miss:0
>      lost:0
>      polling cycles:2024072202084 (100.00%)
>      processing cycles:0 (0.00%)
>pmd thread numa_id 0 core_id 22:
>      emc hits:0
>      megaflow hits:0
>      avg. subtable lookups per hit:0.00
>      miss:0
>      lost:0
>      polling cycles:2695473929852 (100.00%)
>      processing cycles:0 (0.00%)
>pmd thread numa_id 0 core_id 23:
>      emc hits:68276661
>      megaflow hits:27
>      avg. subtable lookups per hit:1.15
>      miss:42
>      lost:0
>      polling cycles:3094829433060 (94.27%)
>      processing cycles:188263651948 (5.73%)
>      avg cycles per packet: 48085.07 (3283093085008/68276761)
>      avg processing cycles per packet: 2757.36 (188263651948/68276761)
>main thread:
>      emc hits:0
>      megaflow hits:0
>      avg. subtable lookups per hit:0.00
>      miss:0
>      lost:0
>      polling cycles:65844260 (100.00%)
>      processing cycles:0 (0.00%)
>[root@EXTENV-10-254-9-7 ~]#
>
>
># ovs-appctl dpif-netdev/pmd-rxq-show
>pmd thread numa_id 0 core_id 6:
>      isolated : false
>      port: vhu6e13f9fe-a6      queue-id: 0
>pmd thread numa_id 0 core_id 7:
>      isolated : false
>      port: vhu69e40c2f-d0      queue-id: 0
>pmd thread numa_id 0 core_id 22:
>      isolated : false
>      port: dpdk0 queue-id: 0
>pmd thread numa_id 0 core_id 23:
>      isolated : false
>      port: vhu0161a0d7-ae      queue-id: 0
>
>
># dpdk-devbind -s
>Network devices using DPDK-compatible driver
>============================================
>0000:02:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio 
>unused=ixgbe,vfio-
>pci
>0000:02:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio 
>unused=ixgbe,vfio-
>pci
>
>
>[root@EXTENV-10-254-9-7 ~]# uname -a
>Linux EXTENV-10-254-9-7 3.10.0-
>327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 
>GNU/Linux
>
>cat /proc/cmdline
>BOOT_IMAGE=/vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/bclinux-
>root ro crashkernel=auto rd.lvm.lv=bclinux/root rd.lvm.lv=bclinux/swap rhgb 
>quiet default_hug
>epagesz=1GB hugepagesz=1G hugepages=200 isolcpus=2,3,26,27
>
># cat /proc/meminfo | grep Huge
>AnonHugePages:    710656 kB
>HugePages_Total:     248
>HugePages_Free:      245
>HugePages_Rsvd:        0
>HugePages_Surp:        0
>
>
>#  ovs-vsctl list Open_vSwitch
>_uuid               : b000a321-12ea-47c6-9e96-3b76368b0336
>bridges             : [5b784499-4af6-4354-92e1-e20712339bd3, 
>a353f240-92f7-4f2d-b5e8-
>4aa32c6a5a24]
>cur_cfg             : 894
>datapath_types      : [netdev, system]
>db_version          : "7.14.0"
>external_ids        : {hostname="EXTENV-10-254-9-7", 
>system-id="c4e79302-273a-4afe-b77c-
>397e383a3fa5"}
>iface_types         : [dpdk, dpdkr, dpdkvhostuser, dpdkvhostuserclient, 
>geneve, gre, internal
>, ipsec_gre, lisp, patch, stt, system, tap, vxlan]
>manager_options     : [1d16f251-b844-44cd-a044-8cffbfd7ece2]
>next_cfg            : 894
>other_config        : {dpdk-alloc-mem="2048", dpdk-init="true", 
>dpdk-socket-mem="1024", pmd-
>cpu-mask="c000c0"}
>ovs_version         : "2.6.1-dpdk1"
>ssl                 : []
>statistics          : {}
>system_type         : centos
>system_version      : "7"
>
>
># cpu_layout.py
>============================================================
>Core and Socket Information (as reported by '/proc/cpuinfo')
>============================================================
>
>cores =  [0, 1, 2, 3, 4, 5, 6, 7]
>sockets =  [0, 1]
>
>       Socket 0        Socket 1
>       --------        --------
>Core 0 [0, 16]         [8, 24]
>Core 1 [1, 17]         [9, 25]
>Core 2 [2, 18]         [10, 26]
>Core 3 [3, 19]         [11, 27]
>Core 4 [4, 20]         [12, 28]
>Core 5 [5, 21]         [13, 29]
>Core 6 [6, 22]         [14, 30]
>Core 7 [7, 23]         [15, 31]
>
>
>[root@EXTENV-10-254-9-7 ~]# ovs-vsctl show
>b000a321-12ea-47c6-9e96-3b76368b0336
>    Manager "ptcp:6640:127.0.0.1"
>        is_connected: true
>    Bridge br-dpdk
>        Controller "tcp:127.0.0.1:6633"
>            is_connected: true
>        fail_mode: secure
>        Port br-dpdk
>            tag: 787
>            Interface br-dpdk
>                type: internal
>        Port "dpdk0"
>            Interface "dpdk0"
>                type: dpdk
>                options: {dpdk-devargs="0000:02:00.0"}
>        Port phy-br-dpdk
>            Interface phy-br-dpdk
>                type: patch
>                options: {peer=int-br-dpdk}
>    Bridge br-int
>        Controller "tcp:127.0.0.1:6633"
>            is_connected: true
>        fail_mode: secure
>        Port patch-tun
>            Interface patch-tun
>                type: patch
>                options: {peer=patch-int}
>        Port "vhu69e40c2f-d0"
>            tag: 1
>            Interface "vhu69e40c2f-d0"
>                type: dpdkvhostuserclient
>                options: 
>{vhost-server-path="/var/run/openvswitch/vhu69e40c2f-d0"}
>        Port "vhu0161a0d7-ae"
>            tag: 1
>            Interface "vhu0161a0d7-ae"
>                type: dpdkvhostuserclient
>                options: 
>{vhost-server-path="/var/run/openvswitch/vhu0161a0d7-ae"}
>        Port int-br-dpdk
>            Interface int-br-dpdk
>                type: patch
>                options: {peer=phy-br-dpdk}
>        Port br-int
>            Interface br-int
>                type: internal
>        Port "vhu6e13f9fe-a6"
>            tag: 1
>            Interface "vhu6e13f9fe-a6"
>                type: dpdkvhostuserclient
>                options: 
>{vhost-server-path="/var/run/openvswitch/vhu6e13f9fe-a6"}
>    ovs_version: "2.6.1-dpdk1"
>[root@EXTENV-10-254-9-7 ~]#
>
>________________________________________
>[email protected]
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to