SlideShare a Scribd company logo
1 of 13
OpenVswitch Performance 
measurements & analysis 
Madhu Challa
Tools used 
• Packet Generators 
– Dpdk-Pktgen for max pps measurements. 
– Netperf to measure bandwidth and latency from VM to VM. 
• Analysis 
– top, sar, mpstat, perf 
– Netsniff-ng toolkit 
• I use the term flow interchangeably. Unless otherwise mentioned 
flow refers to a unique tuple < SIP, DIP, SPORT, DPORT > 
• Test servers are Cisco UCS C220-M3S servers with 24 cores. 2 socket 
Xeon CPUs E5-2643@3.5 GHz with 256 Gbytes of RAM. 
• NIC cards are Intel 82599EB and XL710 (support VXLAN offload) 
• Kernel used is Linux 3.17.0-next-20141007+
NIC-OVS-NIC (throughput) 
• Single flow / Single core 64 byte udp raw datapath switching performance with pktgen. 
– ovs-ofctl add-flow br0 "in_port=1 actions=output:2" 
STANDARD-OVS DPDK-OVS LINUX-BRIDGE 
Gbits / sec 1.159 9.9 1.04 
Mpps 1.72 14.85 1.55 
– Standard OVS 1.159 GBits / sec / 1.72 Mpps 
• Scales sub-linearly with addition of cores (flows load balanced to cores) due to locking in sch_direct_xmit and 
ovs_flow_stats_update). 
• Drops due to rx_missed_errors. 
• Ksoftirqds at 100% 
• ethtool -N eth4 rx-flow-hash udp4 sdfn. 
• service irqbalance stop. 
• 4 cores 3.5 Gbits / sec. 
• Maximum achievable rate with many flows 6.8 Gbits / sec / 10 Mpps, and it would take a packet size of 240 bytes to 
saturate a 10G link. 
– DPDK OVS 9.9 Gbits / sec / 14.85 Mpps. 
• Yes this is for one core. 
• Latest OVS starts a PMD thread per numa node. 
– Linux bridge 1.04Gbits / sec / 1.55 Mpps.
NIC-OVS-NIC (latency) 
• Latency measured using netperf TCP_RR and UDP_RR. 
• Numbers in micro seconds per packet. 
• VM – VM numbers use two hypervisors with VXLAN tunneling and offloads, 
details in later slide. 
OVS DPDK-OVS LINUX-BRIDGE NIC-NIC VM-OVS-OVS-VM 
TCP 46 33 43 27 72.5 
UDP 51 32 44 26.2 66.4
Effect of increasing kernel flows 
• Kernel flows are basically a cache. 
• OVS performs very well so long as packets hit this cache. 
• The cache supports up to 200,000 flows (ofproto_flow_limit). 
• Default flow idle time is 10 seconds. 
• If revalidation takes a long time, the flow_limit and default idle 
times are adjusted so flows can be removed more aggressively. 
• In our testing with 40 VMs, each running netperf TCP_STREAM, 
UDP_STREAM, TCP_RR, UDP_RR between VM pairs (each VM on 
one hypervisor connects to every other VM on the other 
hypervisor) we have not seen this cache grow beyond 2048 flows. 
• The throughput numbers degrade by about 5% when using 2048 
flows.
Effect of cache misses 
• To stress the importance of the kernel flow cache I ran a test completely 
disabling the cache. 
• may_put=false or ovs-appctl upcall/set-flow-limit. 
• The result for the multi flow test presented in slide 3. 
– 400 Mbits / sec, approx 600 Kpps 
– Loadavg 9.03, 37.8%si, 7.1%sy, 6.7%us 
– Most of these due to memory copies. 
- 4.73% 4.73% [kernel] [k] memset 
- memset 
- 58.75% __nla_put 
- nla_put 
+ 86.73% ovs_nla_put_flow 
+ 13.27% queue_userspace_packet 
+ 30.83% nla_reserve 
+ 8.17% genlmsg_put 
+ 1.22% genl_family_rcv_msg 
4.92% [kernel] [k] memcpy 
3.79% [kernel] [k] netlink_lookup 
3.69% [kernel] [k] __nla_reserve 
3.33% [ixgbe] [k] ixgbe_clean_rx_irq 
3.18% [kernel] [k] netlink_compare 
2.63% [kernel] [k] netlink_overrun
VM-OVS-NIC-NIC-OVS-VM 
• Two KVM hypervisors with a VM running on each, connected with 
flow based VXLAN tunnel. 
• Table shows results of various netperf tests. 
– VMs use vhost-net 
– netdev tap,id=vmtap,ifname=vmtap100,script=/home/mchalla/demo-scripts/ 
ovs-ifup,downscript=/home/mchalla/demo-scripts/ovs-ifdown, 
vhost=on -device virtio-net-pci,netdev=vmtap. 
– /etc/default/qemu-kvm VHOST_NET_ENABLED=1 
• Table shows three tests. 
– Default 3.17.0-next-20141007+ kernel with all modules loaded and no 
VXLAN offload. 
– IPTABLES module removed. (ipt_do_table has lock contention that was 
limiting performance) 
– IPTABLES module removed + VXLAN offload.
VM-OVS-NIC-NIC-OVS-VM 
• Throughput numbers in Mbits / second. 
• RR numbers in transactions / second. 
TCP_STREAM UDP_STREAM TCP_MAERTS TCP_RR UDP_RR 
DEFAULT 6752 6433 5474 13736 13694 
NO IPT 6617 7335 5505 13306 14074 
OFFLOAD 4766 9284 5224 13783 15062 
• Interface MTU was 1600 bytes. 
• TCP message size 16384 vs 
• UDP message size 65507. 
• RR uses 1 byte message. 
• The offload gives us about 40% improvement for UDP. 
• TCP numbers low with offload. (Needs further investigation)
VM-OVS-NIC-NIC-OVS-VM 
• Most of the overhead here is copying packets into 
user space and vhost signaling and associated 
context switches. 
• Pinning KVMs to cpus might help. 
• NO IPTABLES 
– 26.29% [kernel] [k] csum_partial 
– 20.31% [kernel] [k] copy_user_enhanced_fast_string 
– 3.92% [kernel] [k] skb_segment 
– 4.68% [kernel] [k] fib_table_lookup 
– 2.22% [kernel] [k] __switch_to 
• NO IPTABLES + OFFLOAD 
– 9.36% [kernel] [k] copy_user_enhanced_fast_string 
– 4.90% [kernel] [k] fib_table_lookup 
– 3.76% [i40e] [k] i40e_napi_poll 
– 3.73% [vhost] [k] vhost_signal 
– 3.06% [vhost] [k] vhost_get_vq_desc 
– 2.66% [kernel] [k] put_compound_page 
– 2.12% [kernel] [k] __switch_to
Flow Mods / second 
• We have scripts (credit to Thomas Graf) that 
create an OVS environment where a large 
number of flows can be added and tested with 
VMs and docker instances. 
• Flow Mods in OVS are very fast, 2000 / sec.
Connection Tracking 
• I used dpdk pktgen to measure the additional 
overhead of sending a packet to the conntrack 
module using a very simple flow. 
• This overhead is approx 15-20%
Future work 
• Test simultaneous connections with IXIA / 
breaking point. 
• Connection tracking feature needs more 
testing with stateful connections. 
• Agree on OVS testing benchmarks. 
• Test DPDK based tunneling.
Demo 
• DPDK test. 
• VM – VM test.

More Related Content

What's hot

How Networking works with Data Science
How Networking works with Data Science How Networking works with Data Science
How Networking works with Data Science HungWei Chiu
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch IntroductionHungWei Chiu
 
Docker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversDocker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversBrent Salisbury
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2Fei Ji Siao
 
Accelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDKAccelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDKOPNFV
 
VMworld 2013: Extreme Performance Series: Network Speed Ahead
VMworld 2013: Extreme Performance Series: Network Speed Ahead VMworld 2013: Extreme Performance Series: Network Speed Ahead
VMworld 2013: Extreme Performance Series: Network Speed Ahead VMworld
 
Anatomy of neutron from the eagle eyes of troubelshoorters
Anatomy of neutron from the eagle eyes of troubelshoortersAnatomy of neutron from the eagle eyes of troubelshoorters
Anatomy of neutron from the eagle eyes of troubelshoortersSadique Puthen
 
See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...LinuxCon ContainerCon CloudOpen China
 
LF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOceanLF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOceanLF_OpenvSwitch
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, greSim Janghoon
 
Linux networking is Awesome!
Linux networking is Awesome!Linux networking is Awesome!
Linux networking is Awesome!Cumulus Networks
 
DevOops - Lessons Learned from an OpenStack Network Architect
DevOops - Lessons Learned from an OpenStack Network ArchitectDevOops - Lessons Learned from an OpenStack Network Architect
DevOops - Lessons Learned from an OpenStack Network ArchitectJames Denton
 
Open vswitch datapath implementation
Open vswitch datapath implementationOpen vswitch datapath implementation
Open vswitch datapath implementationVishal Kapoor
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersKento Aoyama
 
OpenStack networking juno l3 h-a, dvr
OpenStack networking   juno l3 h-a, dvrOpenStack networking   juno l3 h-a, dvr
OpenStack networking juno l3 h-a, dvrSim Janghoon
 
IPTABLES Introduction
IPTABLES IntroductionIPTABLES Introduction
IPTABLES IntroductionHungWei Chiu
 
Open stack networking_101_part-2_tech_deep_dive
Open stack networking_101_part-2_tech_deep_diveOpen stack networking_101_part-2_tech_deep_dive
Open stack networking_101_part-2_tech_deep_diveyfauser
 
LF_OVS_17_LXC Linux Containers over Open vSwitch
LF_OVS_17_LXC Linux Containers over Open vSwitchLF_OVS_17_LXC Linux Containers over Open vSwitch
LF_OVS_17_LXC Linux Containers over Open vSwitchLF_OpenvSwitch
 

What's hot (20)

OVS v OVS-DPDK
OVS v OVS-DPDKOVS v OVS-DPDK
OVS v OVS-DPDK
 
How Networking works with Data Science
How Networking works with Data Science How Networking works with Data Science
How Networking works with Data Science
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
Docker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversDocker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan Drivers
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2
 
Accelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDKAccelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDK
 
VMworld 2013: Extreme Performance Series: Network Speed Ahead
VMworld 2013: Extreme Performance Series: Network Speed Ahead VMworld 2013: Extreme Performance Series: Network Speed Ahead
VMworld 2013: Extreme Performance Series: Network Speed Ahead
 
Anatomy of neutron from the eagle eyes of troubelshoorters
Anatomy of neutron from the eagle eyes of troubelshoortersAnatomy of neutron from the eagle eyes of troubelshoorters
Anatomy of neutron from the eagle eyes of troubelshoorters
 
See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...
 
LF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOceanLF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOcean
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
 
rtnetlink
rtnetlinkrtnetlink
rtnetlink
 
Linux networking is Awesome!
Linux networking is Awesome!Linux networking is Awesome!
Linux networking is Awesome!
 
DevOops - Lessons Learned from an OpenStack Network Architect
DevOops - Lessons Learned from an OpenStack Network ArchitectDevOops - Lessons Learned from an OpenStack Network Architect
DevOops - Lessons Learned from an OpenStack Network Architect
 
Open vswitch datapath implementation
Open vswitch datapath implementationOpen vswitch datapath implementation
Open vswitch datapath implementation
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
 
OpenStack networking juno l3 h-a, dvr
OpenStack networking   juno l3 h-a, dvrOpenStack networking   juno l3 h-a, dvr
OpenStack networking juno l3 h-a, dvr
 
IPTABLES Introduction
IPTABLES IntroductionIPTABLES Introduction
IPTABLES Introduction
 
Open stack networking_101_part-2_tech_deep_dive
Open stack networking_101_part-2_tech_deep_diveOpen stack networking_101_part-2_tech_deep_dive
Open stack networking_101_part-2_tech_deep_dive
 
LF_OVS_17_LXC Linux Containers over Open vSwitch
LF_OVS_17_LXC Linux Containers over Open vSwitchLF_OVS_17_LXC Linux Containers over Open vSwitch
LF_OVS_17_LXC Linux Containers over Open vSwitch
 

Viewers also liked

opendayight loadBalancer
opendayight loadBalancer opendayight loadBalancer
opendayight loadBalancer Khubaib Mahar
 
The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkmarkdgray
 
The Gnocchi Experiment
The Gnocchi ExperimentThe Gnocchi Experiment
The Gnocchi ExperimentGordon Chung
 
Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to GnocchiGordon Chung
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...Jim St. Leger
 
Evermind presenta iPlayEvermind
Evermind presenta iPlayEvermindEvermind presenta iPlayEvermind
Evermind presenta iPlayEvermindFrancesco Biacca
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Grayharryvanhaaren
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07Nicolas (Nick) Barcet
 
Devconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKDevconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKMaxime Coquelin
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGTail-f Systems
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and OpenstackDave Neary
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionTail-f Systems
 
SDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSAMeh Zaghloul
 
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServerUnder the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServerThe Linux Foundation
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitchSim Janghoon
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
DEVNET-1006 Getting Started with OpenDayLight
DEVNET-1006	Getting Started with OpenDayLightDEVNET-1006	Getting Started with OpenDayLight
DEVNET-1006 Getting Started with OpenDayLightCisco DevNet
 

Viewers also liked (20)

opendayight loadBalancer
opendayight loadBalancer opendayight loadBalancer
opendayight loadBalancer
 
The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdk
 
The Gnocchi Experiment
The Gnocchi ExperimentThe Gnocchi Experiment
The Gnocchi Experiment
 
Gnocchi v3
Gnocchi v3Gnocchi v3
Gnocchi v3
 
Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to Gnocchi
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
 
Evermind presenta iPlayEvermind
Evermind presenta iPlayEvermindEvermind presenta iPlayEvermind
Evermind presenta iPlayEvermind
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07
 
Vertical Branding nella Moda
Vertical  Branding nella ModaVertical  Branding nella Moda
Vertical Branding nella Moda
 
Devconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKDevconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDK
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANG
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and Openstack
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical Introduction
 
SDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininet
 
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServerUnder the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServer
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitch
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
DEVNET-1006 Getting Started with OpenDayLight
DEVNET-1006	Getting Started with OpenDayLightDEVNET-1006	Getting Started with OpenDayLight
DEVNET-1006 Getting Started with OpenDayLight
 

Similar to Ovs perf

Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018Cheng-Chun William Tu
 
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G coreTối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G coreVietnam Open Infrastructure User Group
 
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdfJunZhao68
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCoburn Watson
 
Playing BBR with a userspace network stack
Playing BBR with a userspace network stackPlaying BBR with a userspace network stack
Playing BBR with a userspace network stackHajime Tazaki
 
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioFast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioOPNFV
 
Disruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxDisruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxNaoto MATSUMOTO
 
Container Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixContainer Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixDocker, Inc.
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntuSim Janghoon
 
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinks
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinksVSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinks
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinksOPNFV
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OpenvSwitch
 
customization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLAcustomization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLAShien-Chun Luo
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuningprathap kumar
 

Similar to Ovs perf (20)

Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018
 
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G coreTối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
 
mTCP使ってみた
mTCP使ってみたmTCP使ってみた
mTCP使ってみた
 
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
 
Playing BBR with a userspace network stack
Playing BBR with a userspace network stackPlaying BBR with a userspace network stack
Playing BBR with a userspace network stack
 
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioFast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
 
Disruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxDisruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on Linux
 
Container Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixContainer Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, Netflix
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
Brkdct 3101
Brkdct 3101Brkdct 3101
Brkdct 3101
 
Dpdk performance
Dpdk performanceDpdk performance
Dpdk performance
 
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinks
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinksVSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinks
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinks
 
Pluribus SDN Technology
Pluribus SDN TechnologyPluribus SDN Technology
Pluribus SDN Technology
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
 
customization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLAcustomization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLA
 
Решения NFV в контексте операторов связи
Решения NFV в контексте операторов связиРешения NFV в контексте операторов связи
Решения NFV в контексте операторов связи
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
 

Recently uploaded

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Recently uploaded (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Ovs perf

  • 1. OpenVswitch Performance measurements & analysis Madhu Challa
  • 2. Tools used • Packet Generators – Dpdk-Pktgen for max pps measurements. – Netperf to measure bandwidth and latency from VM to VM. • Analysis – top, sar, mpstat, perf – Netsniff-ng toolkit • I use the term flow interchangeably. Unless otherwise mentioned flow refers to a unique tuple < SIP, DIP, SPORT, DPORT > • Test servers are Cisco UCS C220-M3S servers with 24 cores. 2 socket Xeon CPUs E5-2643@3.5 GHz with 256 Gbytes of RAM. • NIC cards are Intel 82599EB and XL710 (support VXLAN offload) • Kernel used is Linux 3.17.0-next-20141007+
  • 3. NIC-OVS-NIC (throughput) • Single flow / Single core 64 byte udp raw datapath switching performance with pktgen. – ovs-ofctl add-flow br0 "in_port=1 actions=output:2" STANDARD-OVS DPDK-OVS LINUX-BRIDGE Gbits / sec 1.159 9.9 1.04 Mpps 1.72 14.85 1.55 – Standard OVS 1.159 GBits / sec / 1.72 Mpps • Scales sub-linearly with addition of cores (flows load balanced to cores) due to locking in sch_direct_xmit and ovs_flow_stats_update). • Drops due to rx_missed_errors. • Ksoftirqds at 100% • ethtool -N eth4 rx-flow-hash udp4 sdfn. • service irqbalance stop. • 4 cores 3.5 Gbits / sec. • Maximum achievable rate with many flows 6.8 Gbits / sec / 10 Mpps, and it would take a packet size of 240 bytes to saturate a 10G link. – DPDK OVS 9.9 Gbits / sec / 14.85 Mpps. • Yes this is for one core. • Latest OVS starts a PMD thread per numa node. – Linux bridge 1.04Gbits / sec / 1.55 Mpps.
  • 4. NIC-OVS-NIC (latency) • Latency measured using netperf TCP_RR and UDP_RR. • Numbers in micro seconds per packet. • VM – VM numbers use two hypervisors with VXLAN tunneling and offloads, details in later slide. OVS DPDK-OVS LINUX-BRIDGE NIC-NIC VM-OVS-OVS-VM TCP 46 33 43 27 72.5 UDP 51 32 44 26.2 66.4
  • 5. Effect of increasing kernel flows • Kernel flows are basically a cache. • OVS performs very well so long as packets hit this cache. • The cache supports up to 200,000 flows (ofproto_flow_limit). • Default flow idle time is 10 seconds. • If revalidation takes a long time, the flow_limit and default idle times are adjusted so flows can be removed more aggressively. • In our testing with 40 VMs, each running netperf TCP_STREAM, UDP_STREAM, TCP_RR, UDP_RR between VM pairs (each VM on one hypervisor connects to every other VM on the other hypervisor) we have not seen this cache grow beyond 2048 flows. • The throughput numbers degrade by about 5% when using 2048 flows.
  • 6. Effect of cache misses • To stress the importance of the kernel flow cache I ran a test completely disabling the cache. • may_put=false or ovs-appctl upcall/set-flow-limit. • The result for the multi flow test presented in slide 3. – 400 Mbits / sec, approx 600 Kpps – Loadavg 9.03, 37.8%si, 7.1%sy, 6.7%us – Most of these due to memory copies. - 4.73% 4.73% [kernel] [k] memset - memset - 58.75% __nla_put - nla_put + 86.73% ovs_nla_put_flow + 13.27% queue_userspace_packet + 30.83% nla_reserve + 8.17% genlmsg_put + 1.22% genl_family_rcv_msg 4.92% [kernel] [k] memcpy 3.79% [kernel] [k] netlink_lookup 3.69% [kernel] [k] __nla_reserve 3.33% [ixgbe] [k] ixgbe_clean_rx_irq 3.18% [kernel] [k] netlink_compare 2.63% [kernel] [k] netlink_overrun
  • 7. VM-OVS-NIC-NIC-OVS-VM • Two KVM hypervisors with a VM running on each, connected with flow based VXLAN tunnel. • Table shows results of various netperf tests. – VMs use vhost-net – netdev tap,id=vmtap,ifname=vmtap100,script=/home/mchalla/demo-scripts/ ovs-ifup,downscript=/home/mchalla/demo-scripts/ovs-ifdown, vhost=on -device virtio-net-pci,netdev=vmtap. – /etc/default/qemu-kvm VHOST_NET_ENABLED=1 • Table shows three tests. – Default 3.17.0-next-20141007+ kernel with all modules loaded and no VXLAN offload. – IPTABLES module removed. (ipt_do_table has lock contention that was limiting performance) – IPTABLES module removed + VXLAN offload.
  • 8. VM-OVS-NIC-NIC-OVS-VM • Throughput numbers in Mbits / second. • RR numbers in transactions / second. TCP_STREAM UDP_STREAM TCP_MAERTS TCP_RR UDP_RR DEFAULT 6752 6433 5474 13736 13694 NO IPT 6617 7335 5505 13306 14074 OFFLOAD 4766 9284 5224 13783 15062 • Interface MTU was 1600 bytes. • TCP message size 16384 vs • UDP message size 65507. • RR uses 1 byte message. • The offload gives us about 40% improvement for UDP. • TCP numbers low with offload. (Needs further investigation)
  • 9. VM-OVS-NIC-NIC-OVS-VM • Most of the overhead here is copying packets into user space and vhost signaling and associated context switches. • Pinning KVMs to cpus might help. • NO IPTABLES – 26.29% [kernel] [k] csum_partial – 20.31% [kernel] [k] copy_user_enhanced_fast_string – 3.92% [kernel] [k] skb_segment – 4.68% [kernel] [k] fib_table_lookup – 2.22% [kernel] [k] __switch_to • NO IPTABLES + OFFLOAD – 9.36% [kernel] [k] copy_user_enhanced_fast_string – 4.90% [kernel] [k] fib_table_lookup – 3.76% [i40e] [k] i40e_napi_poll – 3.73% [vhost] [k] vhost_signal – 3.06% [vhost] [k] vhost_get_vq_desc – 2.66% [kernel] [k] put_compound_page – 2.12% [kernel] [k] __switch_to
  • 10. Flow Mods / second • We have scripts (credit to Thomas Graf) that create an OVS environment where a large number of flows can be added and tested with VMs and docker instances. • Flow Mods in OVS are very fast, 2000 / sec.
  • 11. Connection Tracking • I used dpdk pktgen to measure the additional overhead of sending a packet to the conntrack module using a very simple flow. • This overhead is approx 15-20%
  • 12. Future work • Test simultaneous connections with IXIA / breaking point. • Connection tracking feature needs more testing with stateful connections. • Agree on OVS testing benchmarks. • Test DPDK based tunneling.
  • 13. Demo • DPDK test. • VM – VM test.