SlideShare a Scribd company logo
1©2017 Open-NFP
Measuring a 25 Gb/s and 40 Gb/s
data plane
Christo Kleu
Pervaze Akhtar
2©2017 Open-NFP
Contents
● Preliminaries
○ Equipment
○ Traffic generators
● Test topologies
● Host and VM configuration
○ NUMA Architecture
○ CPU allocation
○ BIOS
○ Host boot settings
○ Interrupt management
● Examples
● Conclusion
3©2017 Open-NFP
Testing Objectives
Testing objective guides choices. Possible objectives:
● Determine throughput limits of SmartNIC processor
● Measure performance of a VNF
○ product VNF
○ experimental VNF
● Packet size:
○ Small packet performance
○ Large packets
○ Packet mix (IMIX)
● Assess:
○ Best case performance
○ Expected performance in a real deployment
● Measure:
○ Packets per second
○ Throughput
○ Packet drop rate? None, limited, unlimited
○ Latency
○ Jitter
● Minimal equipment cost or limited availability
No “one size” solution to everyone’s needs.
4©2017 Open-NFP
Preliminaries - Equipment
● SmartNIC installed in a system.
● Goal is to measure FAST dataplane on the SmartNIC
● System must provide:
○ ARI / SR-IOV
○ Large system RAM. Scale with no. of VMs and VNFs
○ Large number of CPU cores.
○ High clock rate CPUs
● Goal is for the dataplane to be the bottleneck, not host hardware, OS or VNFs
5©2017 Open-NFP
Preliminaries - Traffic generators
● Hardware
○ Ixia
○ Spirent
○ Other high performance hardware generators
● Software
○ DPDK based. High performance. Require sufficient memory to run.
■ Moongen
■ DPDK-pktgen
○ Standard Linux. Simple, lower performance. Must run multiple instances with careful OS
and system configuration for valid results
■ Iperf or Iperf3
■ Netperf
6©2017 Open-NFP
Traffic generators - Speed
● Ixia
○ 1G to 100G, any packet size
○ Throughput, latency, jitter, controlled drops
○ Easy to use
● DPDK based generators
○ 15 Mpps per CPU core. (7.5 Gbps of 64 byte packets => 6 CPUs for 40G)
○ Good for 1-10G small packets. We use Ixia for 25G and up.
○ Measures PPS / Gbps. Latency supported with h/w assist from suitable NICs
○ LUA Scriptable
○ Harder to install, medium configuration complexity for high rates
● Iperf / Netperf
○ Throughput (Gbps).
○ Multi-threaded or multi-process operation (16-32 threads or processes, non-linear rate)
○ 1 CPU per thread or process
○ Good for 1-10 Gbps small packets
○ Easy install, more complex configuration for higher rates
○ Affected by OS and kernel version
7©2017 Open-NFP
Contents
● Preliminaries
○ Equipment
○ Traffic generators
● Test topologies
● Host and VM configuration
○ NUMA Architecture
○ CPU allocation
○ BIOS
○ Host boot settings
○ Interrupt management
● Examples
● Conclusion
8©2017 Open-NFP
Test topologies
● Single DUT (Device Under Test)
○ Port-to-Host-to-Port
○ Port-to-VM-to-Port
○ Host-to-Host
○ VM-to-VM
○ Port-to-Port (*)
○ Port-to-Host (**)
○ Host-to-Port (**)
● Dual DUT (needed for tunneling)
○ Host-to-Host
○ VM-to-VM
* benchmarking of SmartNIC datapath
** benchmarking of unidirectional datapath
Port-to-Port
Port-to-Host
9©2017 Open-NFP
Test topologies - Single DUT
Port-to-Host-to-Port
VM-to-VMPort-to-VM-to-Port
Host-to-Host
10©2017 Open-NFP
Test topologies - Dual DUT
VM-to-VMHost-to-Host
11©2017 Open-NFP
Contents
● Preliminaries
○ Equipment
○ Traffic generators
● Test topologies
● Host and VM configuration
○ NUMA Architecture
○ CPU allocation
○ BIOS
○ Host boot settings
○ Interrupt management
● Examples
● Conclusion
12©2017 Open-NFP
Configuration goals
● Isolate functional components. Eliminate peturbations
● Use “local” memory
● Eliminate system power management transitions
○ No changes in speed
● Avoid context switches and interruptions in processing
● Minimize handoffs
○ Movements in memory
○ Handoffs from one CPU to another
13©2017 Open-NFP
NUMA Architecture - Introduction
● NUMA topology
● CPU Hyperthread partners
● Memory can be local or remote
● Remote memory is more costly
○ increased latency
○ decreased throughput
● Improve performance:
○ ensure applications are run
on specific sets of cores
● Determine the SmartNIC NUMA
affinity (used for planning)
14©2017 Open-NFP
NUMA Architecture - Example 1
● NUMA nodes: 2
● Sockets: 2
● Cores per socket: 14
● Threads per core: 2
● CPUs: 48
● 64GB RAM
● 32GB RAM per NUMA node
● NUMA node0
○ 0,2,4,.. (even)
● NUMA node1
○ 1,3,5,.. (odd)
lstopo
lscpu
numactl
15©2017 Open-NFP
NUMA Architecture - Example 2
compute-02-002:~# lscpu | grep NUMA
NUMA node(s): 2
NUMA node0 CPU(s): 0-9,20-29
NUMA node1 CPU(s): 10-19,30-39
compute-04-003:~# lscpu | grep NUMA
NUMA node(s): 2
NUMA node0 CPU(s):
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46
NUMA node1 CPU(s):
1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47
16©2017 Open-NFP
● CRITICAL - Do not use the same CPU for more than one task
● Isolate and pin CPUs dedicated for critical tasks
● Pin VMs to unique CPUs
■ vcpupin <domain> [--vcpu <number>] [--cpulist <string>]
● Pin DPDK apps to unique CPUs (or logical cores in VM)
○ use -c <coremap> or --l <corelist> to specify CPUs DPDK app uses
CPU affinity and pinning
17©2017 Open-NFP
CPU allocation - Example
LEGEND
● Isolated CPUs
● Host/VM OS CPUs
● VirtIO relay CPUs
● VM CPUs
● VM DPDK app CPUs
18©2017 Open-NFP
BIOS settings (1/3)
● C-state disabled. Ensure that the CPUs are always in the C0 (fully operational) state. Each CPU
has several power modes and they are collectively called “C-states” or “C-modes.”.
● P-state disabled. The processor P-state is the capability of running the processor at different
voltage and/or frequency levels. Generally, P0 is the highest state resulting in maximum
performance, while P1, P2, and so on, will save power but at some penalty to CPU performance.
● Hyper-threading enabled/disabled.
● Turbo Boost Disabled. Turbo Boost has a series of dynamic frequency scaling technologies
enabling the processor to run above its base operating frequency via dynamic control. Although
Turbo Boost (overclocking) would increase the performance, not all cores would be running at the
turbo frequency and it would impact the consistency of the performance tests, thus it would not be
a real representation of the platform performance.
● System Management Interrupts disabled. Disabling the Processor Power and Utilization
Monitoring SMI has a great effect because it generates a processor interrupt eight times a second
in G6 and later servers. Disabling the Memory Pre-Failure Notification SMI has a smaller effect
because it generates an interrupt at a lower frequency
19©2017 Open-NFP
BIOS settings (2/3)
● Correct setting of BIOS for DUT (w/ SmartNIC) is important, to address:
○ Throughput variations due to CPU power state changes (C-state; P-state)
○ Blips (short duration packet drops) due to interrupts (SMI)
● Example settings (HP) changes - settings will vary from BIOS to BIOS
● Power Management
○ Power Regulator = [Static High Performance] (was “dynamic power
savings”)
○ Minimum Processor Core Idle C-state = [No C-states] (was C-6)
○ Minimum Package Idle C-state = [ No package state] (was C-6)
○ Power Profile = [ Max Performance ] (was “customer”) this ended up setting the
above anyway (and graying them out)
● Prevent CPUs from entering power savings modes as transitions cause OS and VM drivers to
drop packets.
20©2017 Open-NFP
BIOS settings (3/3)
● Example settings (HP) changes (cont.)
● SMI - System Management Interrupts
○ Memory pre-failure notification = [disabled] (was enabled)
● When enabled, CPU is periodically interrupted, resulting in packet drops when close to throughput
capacity.
● Disable all non-essential SMIs
● Frequency of SMI varies
■ On an HP DL380 gen9 it is every 60s
■ On gen6,7 it is every hour
■ On gen8 every 5 minutes
21©2017 Open-NFP
Host boot settings - Power Management
● Make changes carefully!
● Power management
○ intel_idle.max_cstate=0 processor.max_cstate=0 idle=mwait
intel_pstate=disable
○ idle=mwait C1 will be entered whenever the core is idle irrespective of other settings
○ idle=poll keeps the processing cores in C0 state when used in conjunction with
intel_idle.max_cstate=0
● Note: These are in addition to the BIOS settings
22©2017 Open-NFP
Host boot settings - CPU isolation
● CRITICAL - shared CPUs yield poor performance
● The isolcpus Linux kernel parameter is used to isolate the cores from the general Linux
scheduler
● Plan out CPU allocation, e.g.
○ CPUs should NOT be used for more than one task.
○ CPUs for host OS
○ CPUs for XVIO
○ CPUs for VMs
■ CPUs for guest OS
■ CPUs for VNF or application
23©2017 Open-NFP
Host boot settings - hugepages
● Settings required if hugepages are required by the applications
○ XVIO (Netronome module providing DPDK to virtio acceleration)
○ DPDK applications (e.g. packet generators) in host or VM
● Hugepages is a feature that allows the Linux kernel to utilize the multiple page size capabilities of
modern hardware architectures.
○ A page is the basic unit of virtual memory, with the default page size being 4 KB in the x86
architecture.
● Leave sufficient memory for OS use
○ no longer subject to normal memory allocations
○ Huge Pages are ‘pinned’ to physical RAM and cannot be swapped/paged out.
● Preference is for 1G hugepages.
○ Each hugepage requires a TLB entry. Smaller hugepages => more TLBs and TLB lookups
due to page faults => higher probability of packet drop blips
default_hugepagesz=1G hugepagesz=1G hugepages=224
24©2017 Open-NFP
Interrupt management
● irqbalance keeps all of the IRQ requests from backing up on a single CPU
● manual pinning for performance testing of low latency real-time applications
● disable irqbalance (and other affinity management utilities: numad, tuned)
● It can be beneficial to turn off IRQ balancing on the host.
○ IRQ processing will be limited to non-isolated CPUS
service irqbalance stop
/etc/default/irqbalance
● Pin interrupts to non-dataplane CPUs
25©2017 Open-NFP
Interrupt management - Pin IRQs
● Check the IRQ indexes of the port
○ Does the interface support multiple queues?
○ /proc/interrupts
● IRQ affinity (smp_affinity) specifies the CPU cores that are allowed to execute the ISR for a
specific interrupt.
○ Assign interrupt affinity and the application's thread affinity to the same set of CPU cores to
allow cache line sharing between the interrupt and application threads.
○ Equally distribute IRQS between available CPUS
● Pin an IRQ to a core
○ echo $IRQ_CPU_LIST > /proc/irq/$IRQ/smp_affinity_list
26©2017 Open-NFP
Netdevs and interrupts
When using netdevs (often done with simple iperf / netperf test configurations)
● Interrupt management is very important
● RPS - receive packet steering (left)
● RFS - receive flow steering (supplements RPS) (right)
27©2017 Open-NFP
Interrupt management - VM settings
● Disable IRQ balancing in VM to prevent data processing CPUs from receiving interrupts.
● Pin apps to vcpus
○ Examples for l2fwd dpdk app:
■ l2fwd -c 6 -n 4 — -p 3 -T 0 # 3 vCPU VM
■ l2fwd -c 7 -n 4 — -p 7 -T 0 # 4 vCPU VM
■ Note: “-c <coremap>” tells dpdk app which cores to run on.
■ Note: “-p <PORTMASK>” tells dpdk app which ports to use.
28©2017 Open-NFP
Contents
● Preliminaries
○ Equipment
○ Traffic generators
● Test topologies
● Host and VM configuration
○ NUMA Architecture
○ CPU allocation
○ BIOS
○ Host boot settings
○ Interrupt management
● Examples
● Conclusion
29©2017 Open-NFP
Agilio OVS - Example tuning setup (1/5)
Testing goal
● Verify layer 2 forwarding performance of a VNF
(entire datapath including virtualization)
● Is the VNF the bottleneck?
● Is the PCI-E bus the bottleneck?
● Is the SmartNIC the bottleneck?
● Is the QSFP the bottleneck?
● Is OVS the bottleneck?
Testing topology
● Host-to-VM-to-Host (Single DUT)
● Traffic generator: Ixia
CPU allocation design
● Host OS
● virtiorelay
● VM00, VM01, VM02, VM03
30©2017 Open-NFP
Agilio OVS - Example tuning setup (2/5)
# lspci -d 19ee:4000
05:00.0 Ethernet controller: Netronome Systems, Inc. Device 4000
# cat /sys/bus/pci/drivers/nfp/0000:05:00.0/numa_node
0
# cat /sys/bus/pci/drivers/nfp/0000:05:00.0/local_cpulist
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46
# lscpu | grep 'NUMA'
NUMA node(s): 2
NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46
NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47
31©2017 Open-NFP
CPU allocation design
● Host OS: (0,24), (1,25)
● Isolate all except Host OS
● VirtIO relay: (2,26), (4, 28)
● VM00: (8, 32), (10, 34)
● VM01: (16, 40), (18, 42)
● VM02: (12, 36), (14, 38)
● VM03: (20, 44), (22, 46)
VM specifications
● 4x CPUs
● 4GB RAM
● 2x VirtIO interfaces
● DPDK l2fwd app
Agilio OVS - Example tuning setup (3/5)
32©2017 Open-NFP
Host configuration:
SDN_VIRTIORELAY_PARAM="--cpus=2,26,4,28 --virtio-cpu=0:2 --virtio-cpu=1:26
--virtio-cpu=2:2 --virtio-cpu=3:26 --virtio-cpu=4:4 --virtio-cpu=5:28
--virtio-cpu=6:4 --virtio-cpu=7:28 <<snippet>>"
# cat /proc/cmdline
intel_iommu=on iommu=pt hugepagesz=2M hugepages=16384 default_hugepagesz=2M
hugepagesz=1G hugepages=8 isolcpus=2-23,26-47 intel_idle.max_cstate=0
processor.max_cstate=0 idle=mwait intel_pstate=disable
VM configuration:
service irqbalance off
DPDK applications inside VM:
./l2fwd -l 2-3 -n 4 — -p 3 -T 0
Agilio OVS - Example tuning setup (4/5)
33©2017 Open-NFP
Agilio OVS - Example tuning setup (5/5)
Use Case
● Agilio OVS
● Agilio CX 1x40GbE SmartNIC
● SR-IOV
● External Traffic Generator: Ixia
● VM application: l2fwd
34©2017 Open-NFP
Contents
● Preliminaries
○ Equipment
○ Traffic generators
● Test topologies
● Host and VM configuration
○ NUMA Architecture
○ CPU allocation
○ BIOS
○ Host boot settings
○ Interrupt management
● Examples
● Conclusion
35©2017 Open-NFP
Conclusion
● What component are you trying to measure? What measurements needed?
● Data rate may dictate equipment and test bed configuration
○ 1G easy
○ ...
○ 100G hard
● Plan and provision test bed
● Isolate components from each other, and from external interference
○ Very important!
○ Partition and isolate CPUs
○ Turn off power management
○ Allocate memory
○ Eliminate extraneous interrupts, or steer to non data path CPUs
36©2017 Open-NFP
See also
1. Configuring HP ProLiant Servers for low-latency applications
a. https://h50146.www5.hpe.com/products/software/oe/linux/mainstream/support/whitepaper/p
dfs/c01804533-2014-may.pdf
2. Red Hat Performance Tuning Guide
a. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/P
erformance_Tuning_Guide/
3. Performance tuning from FD.io project
a. https://wiki.fd.io/view/VPP/How_To_Optimize_Performance_(System_Tuning)
4. NUMA Best Practices for Dell PowerEdge 12th Generation Servers
a. http://en.community.dell.com/techcenter/extras/m/white_papers/20266946
37©2017 Open-NFP
Reference and Backup slides
● More detailed slides, for reference
38©2017 Open-NFP
Test topologies - Port-to-Host-to-Port
Single DUT
● L2 or L3 forwarding of packets between ports
● Ixia or other hardware traffic generator
● Host or VM based VNF
○ Less complex and less overheads with host
VNF
○ More faithful to real use cases with VM
● Choice of VNF. Examples:
○ Simple: l2fwd, linux bridge
○ Real application: Snort, DPI, Caching
● What do you want to measure?
○ SmartNIC dataplane
■ Will need to ensure host OS, VM and VNF are
not the bottlenecks
○ VNF
■ Usually easier to hit VNF performance limits.
39©2017 Open-NFP
Test topologies - Port-to-VM-to-Port
Single DUT
● L2 or L3 forwarding of packets between ports
● Ixia or other hardware traffic generator
● Host or VM based VNF
○ Less complex and less overheads with host VNF
○ More faithful to real use cases with VM
● Choice of VNF. Examples:
○ Simple: l2fwd, linux bridge
○ Real application: Snort, DPI, Caching
● What do you want to measure?
○ SmartNIC dataplane
■ Will need to ensure host OS, VM and VNF are
not the bottlenecks
○ VNF
■ Usually easier to hit VNF performance limits.
40©2017 Open-NFP
Test topologies - Host-to-Host
Single DUT
● No hardware traffic generator required.
● Single host with SmartNIC
● Use your choice of software traffic generator
○ Moongen (DPDK based)
○ DPDK-pktgen
○ Netperf
○ iperf
● Traffic generator will greatly affect configuration
○ DPDK based generators offer high performance with
sufficient vCPUs and memory
○ Netperf/iperf offers simplicity but low performance. Must
run multiple instances for useful results.
● Direct connect or switch between SmartNICs
● Less desirable than using a hardware based traffic generator
configuration, but much more available
41©2017 Open-NFP
Test topologies - VM-to-VM
Single DUT
● No hardware traffic generator required.
● Single host with SmartNIC, 2 or more VMs
● Less desirable than using a hardware based traffic generator
configuration, but much more available
● Use your choice of software traffic generator
○ Moongen (DPDK based)
○ DPDK-pktgen
○ Netperf
○ iperf
● Traffic generator will greatly affect configuration
○ DPDK based generators offer high performance with sufficient
vCPUs and memory
○ Netperf offers simplicity but low performance. Must run multiple
instances for useful results.
● Resource allocation and isolation essential (host OS, VMs, traffic
generators) for valid results
42©2017 Open-NFP
Test topologies - Port-to-Port
Single DUT
● Useful for direct SmartNIC benchmarking purposes
○ Traffic does not pass PCIe bus
○ No host optimisation necessary
○ Host resources does not play a factor
○ Results without VNFs
● External traffic generator required (hardware or software)
● Can be achieved in a number of ways
○ Directly programming rules (wire application)
○ Priming flows (offload functionality)
/opt/netronome/bin/ovs-ctl configure wire from sdn_p0 to sdn_p1
/opt/netronome/bin/ovs-ctl configure wire from sdn_p1 to sdn_p0
43©2017 Open-NFP
Test topologies - Host-to-Host
Dual DUT
● 2 hosts connected via a switch.
● No VMs
● Traffic generators
○ Moongen
○ DPDK-pktgen
○ Netperf / iperf
● Physical port speed will be upper throughput limit for large
packets.
● Less resource constrained configuration, easier to characterize
SmartNIC performance
● Exercises full data path through the SmartNIC
44©2017 Open-NFP
Test Topologies - VM-to-VM
Dual DUT
● Traffic generators in VMs
○ one or more VMs on each host
● Resource allocation and isolation essential for valid
results
● Larger number of VMs requires attention to vCPU
allocation and NUMA

More Related Content

What's hot

Whitebox Switches Deployment Experience
Whitebox Switches Deployment ExperienceWhitebox Switches Deployment Experience
Whitebox Switches Deployment Experience
APNIC
 
Consensus as a Network Service
Consensus as a Network ServiceConsensus as a Network Service
Consensus as a Network Service
Open-NFP
 
Data Plane and VNF Acceleration Mini Summit
Data Plane and VNF Acceleration Mini Summit Data Plane and VNF Acceleration Mini Summit
Data Plane and VNF Acceleration Mini Summit
Open-NFP
 
Comprehensive XDP Off‌load-handling the Edge Cases
Comprehensive XDP Off‌load-handling the Edge CasesComprehensive XDP Off‌load-handling the Edge Cases
Comprehensive XDP Off‌load-handling the Edge Cases
Netronome
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
Open-NFP
 
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Netronome
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
Thomas Graf
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
IO Visor Project
 
Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017
Cheng-Chun William Tu
 
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric LeblondKernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Anne Nicolas
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
Thomas Graf
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
Thomas Graf
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 Workshop
Yi Tseng
 
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
LF_DPDK
 
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
 
Stress your DUT
Stress your DUTStress your DUT
Stress your DUT
Redge Technologies
 
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDKLF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
lcplcp1
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDP
Thomas Graf
 
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Anne Nicolas
 

What's hot (20)

Whitebox Switches Deployment Experience
Whitebox Switches Deployment ExperienceWhitebox Switches Deployment Experience
Whitebox Switches Deployment Experience
 
Consensus as a Network Service
Consensus as a Network ServiceConsensus as a Network Service
Consensus as a Network Service
 
Data Plane and VNF Acceleration Mini Summit
Data Plane and VNF Acceleration Mini Summit Data Plane and VNF Acceleration Mini Summit
Data Plane and VNF Acceleration Mini Summit
 
Comprehensive XDP Off‌load-handling the Edge Cases
Comprehensive XDP Off‌load-handling the Edge CasesComprehensive XDP Off‌load-handling the Edge Cases
Comprehensive XDP Off‌load-handling the Edge Cases
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
 
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
 
Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017
 
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric LeblondKernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 Workshop
 
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
 
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)
 
Stress your DUT
Stress your DUTStress your DUT
Stress your DUT
 
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDKLF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDP
 
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
 

Similar to Measuring a 25 and 40Gb/s Data Plane

100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV
NTT Communications Technology Development
 
Streaming multiprocessors and HPC
Streaming multiprocessors and HPCStreaming multiprocessors and HPC
Streaming multiprocessors and HPC
OmkarKachare1
 
Improving Kafka at-least-once performance at Uber
Improving Kafka at-least-once performance at UberImproving Kafka at-least-once performance at Uber
Improving Kafka at-least-once performance at Uber
Ying Zheng
 
SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016
Koan-Sin Tan
 
SPE effiency on modern hardware paper presentation
SPE effiency on modern hardware   paper presentationSPE effiency on modern hardware   paper presentation
SPE effiency on modern hardware paper presentation
PanagiotisSavvaidis
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntuSim Janghoon
 
OSS-10mins-7th2.pptx
OSS-10mins-7th2.pptxOSS-10mins-7th2.pptx
OSS-10mins-7th2.pptx
jagmohan33
 
PLNOG 13: Maciej Grabowski: HP Moonshot
PLNOG 13: Maciej Grabowski: HP MoonshotPLNOG 13: Maciej Grabowski: HP Moonshot
PLNOG 13: Maciej Grabowski: HP Moonshot
PROIDEA
 
BKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PMBKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PM
Linaro
 
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
NTT Communications Technology Development
 
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
OpenStack Korea Community
 
Tensor Processing Unit (TPU)
Tensor Processing Unit (TPU)Tensor Processing Unit (TPU)
Tensor Processing Unit (TPU)
Antonios Katsarakis
 
Red Hat Gluster Storage Performance
Red Hat Gluster Storage PerformanceRed Hat Gluster Storage Performance
Red Hat Gluster Storage Performance
Red_Hat_Storage
 
Hardware Assisted Latency Investigations
Hardware Assisted Latency InvestigationsHardware Assisted Latency Investigations
Hardware Assisted Latency Investigations
ScyllaDB
 
Memory Bandwidth QoS
Memory Bandwidth QoSMemory Bandwidth QoS
Memory Bandwidth QoS
Rohit Jnagal
 
Migrating to Apache Spark at Netflix
Migrating to Apache Spark at NetflixMigrating to Apache Spark at Netflix
Migrating to Apache Spark at Netflix
Databricks
 
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farm
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farmKernel Recipes 2016 - Speeding up development by setting up a kernel build farm
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farm
Anne Nicolas
 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVM
data://disrupted®
 
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
Optimizing Servers for High-Throughput and Low-Latency at DropboxOptimizing Servers for High-Throughput and Low-Latency at Dropbox
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
ScyllaDB
 

Similar to Measuring a 25 and 40Gb/s Data Plane (20)

100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV
 
Optimizing Linux Servers
Optimizing Linux ServersOptimizing Linux Servers
Optimizing Linux Servers
 
Streaming multiprocessors and HPC
Streaming multiprocessors and HPCStreaming multiprocessors and HPC
Streaming multiprocessors and HPC
 
Improving Kafka at-least-once performance at Uber
Improving Kafka at-least-once performance at UberImproving Kafka at-least-once performance at Uber
Improving Kafka at-least-once performance at Uber
 
SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016
 
SPE effiency on modern hardware paper presentation
SPE effiency on modern hardware   paper presentationSPE effiency on modern hardware   paper presentation
SPE effiency on modern hardware paper presentation
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
OSS-10mins-7th2.pptx
OSS-10mins-7th2.pptxOSS-10mins-7th2.pptx
OSS-10mins-7th2.pptx
 
PLNOG 13: Maciej Grabowski: HP Moonshot
PLNOG 13: Maciej Grabowski: HP MoonshotPLNOG 13: Maciej Grabowski: HP Moonshot
PLNOG 13: Maciej Grabowski: HP Moonshot
 
BKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PMBKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PM
 
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
 
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
 
Tensor Processing Unit (TPU)
Tensor Processing Unit (TPU)Tensor Processing Unit (TPU)
Tensor Processing Unit (TPU)
 
Red Hat Gluster Storage Performance
Red Hat Gluster Storage PerformanceRed Hat Gluster Storage Performance
Red Hat Gluster Storage Performance
 
Hardware Assisted Latency Investigations
Hardware Assisted Latency InvestigationsHardware Assisted Latency Investigations
Hardware Assisted Latency Investigations
 
Memory Bandwidth QoS
Memory Bandwidth QoSMemory Bandwidth QoS
Memory Bandwidth QoS
 
Migrating to Apache Spark at Netflix
Migrating to Apache Spark at NetflixMigrating to Apache Spark at Netflix
Migrating to Apache Spark at Netflix
 
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farm
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farmKernel Recipes 2016 - Speeding up development by setting up a kernel build farm
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farm
 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVM
 
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
Optimizing Servers for High-Throughput and Low-Latency at DropboxOptimizing Servers for High-Throughput and Low-Latency at Dropbox
Optimizing Servers for High-Throughput and Low-Latency at Dropbox
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

Measuring a 25 and 40Gb/s Data Plane

  • 1. 1©2017 Open-NFP Measuring a 25 Gb/s and 40 Gb/s data plane Christo Kleu Pervaze Akhtar
  • 2. 2©2017 Open-NFP Contents ● Preliminaries ○ Equipment ○ Traffic generators ● Test topologies ● Host and VM configuration ○ NUMA Architecture ○ CPU allocation ○ BIOS ○ Host boot settings ○ Interrupt management ● Examples ● Conclusion
  • 3. 3©2017 Open-NFP Testing Objectives Testing objective guides choices. Possible objectives: ● Determine throughput limits of SmartNIC processor ● Measure performance of a VNF ○ product VNF ○ experimental VNF ● Packet size: ○ Small packet performance ○ Large packets ○ Packet mix (IMIX) ● Assess: ○ Best case performance ○ Expected performance in a real deployment ● Measure: ○ Packets per second ○ Throughput ○ Packet drop rate? None, limited, unlimited ○ Latency ○ Jitter ● Minimal equipment cost or limited availability No “one size” solution to everyone’s needs.
  • 4. 4©2017 Open-NFP Preliminaries - Equipment ● SmartNIC installed in a system. ● Goal is to measure FAST dataplane on the SmartNIC ● System must provide: ○ ARI / SR-IOV ○ Large system RAM. Scale with no. of VMs and VNFs ○ Large number of CPU cores. ○ High clock rate CPUs ● Goal is for the dataplane to be the bottleneck, not host hardware, OS or VNFs
  • 5. 5©2017 Open-NFP Preliminaries - Traffic generators ● Hardware ○ Ixia ○ Spirent ○ Other high performance hardware generators ● Software ○ DPDK based. High performance. Require sufficient memory to run. ■ Moongen ■ DPDK-pktgen ○ Standard Linux. Simple, lower performance. Must run multiple instances with careful OS and system configuration for valid results ■ Iperf or Iperf3 ■ Netperf
  • 6. 6©2017 Open-NFP Traffic generators - Speed ● Ixia ○ 1G to 100G, any packet size ○ Throughput, latency, jitter, controlled drops ○ Easy to use ● DPDK based generators ○ 15 Mpps per CPU core. (7.5 Gbps of 64 byte packets => 6 CPUs for 40G) ○ Good for 1-10G small packets. We use Ixia for 25G and up. ○ Measures PPS / Gbps. Latency supported with h/w assist from suitable NICs ○ LUA Scriptable ○ Harder to install, medium configuration complexity for high rates ● Iperf / Netperf ○ Throughput (Gbps). ○ Multi-threaded or multi-process operation (16-32 threads or processes, non-linear rate) ○ 1 CPU per thread or process ○ Good for 1-10 Gbps small packets ○ Easy install, more complex configuration for higher rates ○ Affected by OS and kernel version
  • 7. 7©2017 Open-NFP Contents ● Preliminaries ○ Equipment ○ Traffic generators ● Test topologies ● Host and VM configuration ○ NUMA Architecture ○ CPU allocation ○ BIOS ○ Host boot settings ○ Interrupt management ● Examples ● Conclusion
  • 8. 8©2017 Open-NFP Test topologies ● Single DUT (Device Under Test) ○ Port-to-Host-to-Port ○ Port-to-VM-to-Port ○ Host-to-Host ○ VM-to-VM ○ Port-to-Port (*) ○ Port-to-Host (**) ○ Host-to-Port (**) ● Dual DUT (needed for tunneling) ○ Host-to-Host ○ VM-to-VM * benchmarking of SmartNIC datapath ** benchmarking of unidirectional datapath Port-to-Port Port-to-Host
  • 9. 9©2017 Open-NFP Test topologies - Single DUT Port-to-Host-to-Port VM-to-VMPort-to-VM-to-Port Host-to-Host
  • 10. 10©2017 Open-NFP Test topologies - Dual DUT VM-to-VMHost-to-Host
  • 11. 11©2017 Open-NFP Contents ● Preliminaries ○ Equipment ○ Traffic generators ● Test topologies ● Host and VM configuration ○ NUMA Architecture ○ CPU allocation ○ BIOS ○ Host boot settings ○ Interrupt management ● Examples ● Conclusion
  • 12. 12©2017 Open-NFP Configuration goals ● Isolate functional components. Eliminate peturbations ● Use “local” memory ● Eliminate system power management transitions ○ No changes in speed ● Avoid context switches and interruptions in processing ● Minimize handoffs ○ Movements in memory ○ Handoffs from one CPU to another
  • 13. 13©2017 Open-NFP NUMA Architecture - Introduction ● NUMA topology ● CPU Hyperthread partners ● Memory can be local or remote ● Remote memory is more costly ○ increased latency ○ decreased throughput ● Improve performance: ○ ensure applications are run on specific sets of cores ● Determine the SmartNIC NUMA affinity (used for planning)
  • 14. 14©2017 Open-NFP NUMA Architecture - Example 1 ● NUMA nodes: 2 ● Sockets: 2 ● Cores per socket: 14 ● Threads per core: 2 ● CPUs: 48 ● 64GB RAM ● 32GB RAM per NUMA node ● NUMA node0 ○ 0,2,4,.. (even) ● NUMA node1 ○ 1,3,5,.. (odd) lstopo lscpu numactl
  • 15. 15©2017 Open-NFP NUMA Architecture - Example 2 compute-02-002:~# lscpu | grep NUMA NUMA node(s): 2 NUMA node0 CPU(s): 0-9,20-29 NUMA node1 CPU(s): 10-19,30-39 compute-04-003:~# lscpu | grep NUMA NUMA node(s): 2 NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46 NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47
  • 16. 16©2017 Open-NFP ● CRITICAL - Do not use the same CPU for more than one task ● Isolate and pin CPUs dedicated for critical tasks ● Pin VMs to unique CPUs ■ vcpupin <domain> [--vcpu <number>] [--cpulist <string>] ● Pin DPDK apps to unique CPUs (or logical cores in VM) ○ use -c <coremap> or --l <corelist> to specify CPUs DPDK app uses CPU affinity and pinning
  • 17. 17©2017 Open-NFP CPU allocation - Example LEGEND ● Isolated CPUs ● Host/VM OS CPUs ● VirtIO relay CPUs ● VM CPUs ● VM DPDK app CPUs
  • 18. 18©2017 Open-NFP BIOS settings (1/3) ● C-state disabled. Ensure that the CPUs are always in the C0 (fully operational) state. Each CPU has several power modes and they are collectively called “C-states” or “C-modes.”. ● P-state disabled. The processor P-state is the capability of running the processor at different voltage and/or frequency levels. Generally, P0 is the highest state resulting in maximum performance, while P1, P2, and so on, will save power but at some penalty to CPU performance. ● Hyper-threading enabled/disabled. ● Turbo Boost Disabled. Turbo Boost has a series of dynamic frequency scaling technologies enabling the processor to run above its base operating frequency via dynamic control. Although Turbo Boost (overclocking) would increase the performance, not all cores would be running at the turbo frequency and it would impact the consistency of the performance tests, thus it would not be a real representation of the platform performance. ● System Management Interrupts disabled. Disabling the Processor Power and Utilization Monitoring SMI has a great effect because it generates a processor interrupt eight times a second in G6 and later servers. Disabling the Memory Pre-Failure Notification SMI has a smaller effect because it generates an interrupt at a lower frequency
  • 19. 19©2017 Open-NFP BIOS settings (2/3) ● Correct setting of BIOS for DUT (w/ SmartNIC) is important, to address: ○ Throughput variations due to CPU power state changes (C-state; P-state) ○ Blips (short duration packet drops) due to interrupts (SMI) ● Example settings (HP) changes - settings will vary from BIOS to BIOS ● Power Management ○ Power Regulator = [Static High Performance] (was “dynamic power savings”) ○ Minimum Processor Core Idle C-state = [No C-states] (was C-6) ○ Minimum Package Idle C-state = [ No package state] (was C-6) ○ Power Profile = [ Max Performance ] (was “customer”) this ended up setting the above anyway (and graying them out) ● Prevent CPUs from entering power savings modes as transitions cause OS and VM drivers to drop packets.
  • 20. 20©2017 Open-NFP BIOS settings (3/3) ● Example settings (HP) changes (cont.) ● SMI - System Management Interrupts ○ Memory pre-failure notification = [disabled] (was enabled) ● When enabled, CPU is periodically interrupted, resulting in packet drops when close to throughput capacity. ● Disable all non-essential SMIs ● Frequency of SMI varies ■ On an HP DL380 gen9 it is every 60s ■ On gen6,7 it is every hour ■ On gen8 every 5 minutes
  • 21. 21©2017 Open-NFP Host boot settings - Power Management ● Make changes carefully! ● Power management ○ intel_idle.max_cstate=0 processor.max_cstate=0 idle=mwait intel_pstate=disable ○ idle=mwait C1 will be entered whenever the core is idle irrespective of other settings ○ idle=poll keeps the processing cores in C0 state when used in conjunction with intel_idle.max_cstate=0 ● Note: These are in addition to the BIOS settings
  • 22. 22©2017 Open-NFP Host boot settings - CPU isolation ● CRITICAL - shared CPUs yield poor performance ● The isolcpus Linux kernel parameter is used to isolate the cores from the general Linux scheduler ● Plan out CPU allocation, e.g. ○ CPUs should NOT be used for more than one task. ○ CPUs for host OS ○ CPUs for XVIO ○ CPUs for VMs ■ CPUs for guest OS ■ CPUs for VNF or application
  • 23. 23©2017 Open-NFP Host boot settings - hugepages ● Settings required if hugepages are required by the applications ○ XVIO (Netronome module providing DPDK to virtio acceleration) ○ DPDK applications (e.g. packet generators) in host or VM ● Hugepages is a feature that allows the Linux kernel to utilize the multiple page size capabilities of modern hardware architectures. ○ A page is the basic unit of virtual memory, with the default page size being 4 KB in the x86 architecture. ● Leave sufficient memory for OS use ○ no longer subject to normal memory allocations ○ Huge Pages are ‘pinned’ to physical RAM and cannot be swapped/paged out. ● Preference is for 1G hugepages. ○ Each hugepage requires a TLB entry. Smaller hugepages => more TLBs and TLB lookups due to page faults => higher probability of packet drop blips default_hugepagesz=1G hugepagesz=1G hugepages=224
  • 24. 24©2017 Open-NFP Interrupt management ● irqbalance keeps all of the IRQ requests from backing up on a single CPU ● manual pinning for performance testing of low latency real-time applications ● disable irqbalance (and other affinity management utilities: numad, tuned) ● It can be beneficial to turn off IRQ balancing on the host. ○ IRQ processing will be limited to non-isolated CPUS service irqbalance stop /etc/default/irqbalance ● Pin interrupts to non-dataplane CPUs
  • 25. 25©2017 Open-NFP Interrupt management - Pin IRQs ● Check the IRQ indexes of the port ○ Does the interface support multiple queues? ○ /proc/interrupts ● IRQ affinity (smp_affinity) specifies the CPU cores that are allowed to execute the ISR for a specific interrupt. ○ Assign interrupt affinity and the application's thread affinity to the same set of CPU cores to allow cache line sharing between the interrupt and application threads. ○ Equally distribute IRQS between available CPUS ● Pin an IRQ to a core ○ echo $IRQ_CPU_LIST > /proc/irq/$IRQ/smp_affinity_list
  • 26. 26©2017 Open-NFP Netdevs and interrupts When using netdevs (often done with simple iperf / netperf test configurations) ● Interrupt management is very important ● RPS - receive packet steering (left) ● RFS - receive flow steering (supplements RPS) (right)
  • 27. 27©2017 Open-NFP Interrupt management - VM settings ● Disable IRQ balancing in VM to prevent data processing CPUs from receiving interrupts. ● Pin apps to vcpus ○ Examples for l2fwd dpdk app: ■ l2fwd -c 6 -n 4 — -p 3 -T 0 # 3 vCPU VM ■ l2fwd -c 7 -n 4 — -p 7 -T 0 # 4 vCPU VM ■ Note: “-c <coremap>” tells dpdk app which cores to run on. ■ Note: “-p <PORTMASK>” tells dpdk app which ports to use.
  • 28. 28©2017 Open-NFP Contents ● Preliminaries ○ Equipment ○ Traffic generators ● Test topologies ● Host and VM configuration ○ NUMA Architecture ○ CPU allocation ○ BIOS ○ Host boot settings ○ Interrupt management ● Examples ● Conclusion
  • 29. 29©2017 Open-NFP Agilio OVS - Example tuning setup (1/5) Testing goal ● Verify layer 2 forwarding performance of a VNF (entire datapath including virtualization) ● Is the VNF the bottleneck? ● Is the PCI-E bus the bottleneck? ● Is the SmartNIC the bottleneck? ● Is the QSFP the bottleneck? ● Is OVS the bottleneck? Testing topology ● Host-to-VM-to-Host (Single DUT) ● Traffic generator: Ixia CPU allocation design ● Host OS ● virtiorelay ● VM00, VM01, VM02, VM03
  • 30. 30©2017 Open-NFP Agilio OVS - Example tuning setup (2/5) # lspci -d 19ee:4000 05:00.0 Ethernet controller: Netronome Systems, Inc. Device 4000 # cat /sys/bus/pci/drivers/nfp/0000:05:00.0/numa_node 0 # cat /sys/bus/pci/drivers/nfp/0000:05:00.0/local_cpulist 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46 # lscpu | grep 'NUMA' NUMA node(s): 2 NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46 NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47
  • 31. 31©2017 Open-NFP CPU allocation design ● Host OS: (0,24), (1,25) ● Isolate all except Host OS ● VirtIO relay: (2,26), (4, 28) ● VM00: (8, 32), (10, 34) ● VM01: (16, 40), (18, 42) ● VM02: (12, 36), (14, 38) ● VM03: (20, 44), (22, 46) VM specifications ● 4x CPUs ● 4GB RAM ● 2x VirtIO interfaces ● DPDK l2fwd app Agilio OVS - Example tuning setup (3/5)
  • 32. 32©2017 Open-NFP Host configuration: SDN_VIRTIORELAY_PARAM="--cpus=2,26,4,28 --virtio-cpu=0:2 --virtio-cpu=1:26 --virtio-cpu=2:2 --virtio-cpu=3:26 --virtio-cpu=4:4 --virtio-cpu=5:28 --virtio-cpu=6:4 --virtio-cpu=7:28 <<snippet>>" # cat /proc/cmdline intel_iommu=on iommu=pt hugepagesz=2M hugepages=16384 default_hugepagesz=2M hugepagesz=1G hugepages=8 isolcpus=2-23,26-47 intel_idle.max_cstate=0 processor.max_cstate=0 idle=mwait intel_pstate=disable VM configuration: service irqbalance off DPDK applications inside VM: ./l2fwd -l 2-3 -n 4 — -p 3 -T 0 Agilio OVS - Example tuning setup (4/5)
  • 33. 33©2017 Open-NFP Agilio OVS - Example tuning setup (5/5) Use Case ● Agilio OVS ● Agilio CX 1x40GbE SmartNIC ● SR-IOV ● External Traffic Generator: Ixia ● VM application: l2fwd
  • 34. 34©2017 Open-NFP Contents ● Preliminaries ○ Equipment ○ Traffic generators ● Test topologies ● Host and VM configuration ○ NUMA Architecture ○ CPU allocation ○ BIOS ○ Host boot settings ○ Interrupt management ● Examples ● Conclusion
  • 35. 35©2017 Open-NFP Conclusion ● What component are you trying to measure? What measurements needed? ● Data rate may dictate equipment and test bed configuration ○ 1G easy ○ ... ○ 100G hard ● Plan and provision test bed ● Isolate components from each other, and from external interference ○ Very important! ○ Partition and isolate CPUs ○ Turn off power management ○ Allocate memory ○ Eliminate extraneous interrupts, or steer to non data path CPUs
  • 36. 36©2017 Open-NFP See also 1. Configuring HP ProLiant Servers for low-latency applications a. https://h50146.www5.hpe.com/products/software/oe/linux/mainstream/support/whitepaper/p dfs/c01804533-2014-may.pdf 2. Red Hat Performance Tuning Guide a. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/P erformance_Tuning_Guide/ 3. Performance tuning from FD.io project a. https://wiki.fd.io/view/VPP/How_To_Optimize_Performance_(System_Tuning) 4. NUMA Best Practices for Dell PowerEdge 12th Generation Servers a. http://en.community.dell.com/techcenter/extras/m/white_papers/20266946
  • 37. 37©2017 Open-NFP Reference and Backup slides ● More detailed slides, for reference
  • 38. 38©2017 Open-NFP Test topologies - Port-to-Host-to-Port Single DUT ● L2 or L3 forwarding of packets between ports ● Ixia or other hardware traffic generator ● Host or VM based VNF ○ Less complex and less overheads with host VNF ○ More faithful to real use cases with VM ● Choice of VNF. Examples: ○ Simple: l2fwd, linux bridge ○ Real application: Snort, DPI, Caching ● What do you want to measure? ○ SmartNIC dataplane ■ Will need to ensure host OS, VM and VNF are not the bottlenecks ○ VNF ■ Usually easier to hit VNF performance limits.
  • 39. 39©2017 Open-NFP Test topologies - Port-to-VM-to-Port Single DUT ● L2 or L3 forwarding of packets between ports ● Ixia or other hardware traffic generator ● Host or VM based VNF ○ Less complex and less overheads with host VNF ○ More faithful to real use cases with VM ● Choice of VNF. Examples: ○ Simple: l2fwd, linux bridge ○ Real application: Snort, DPI, Caching ● What do you want to measure? ○ SmartNIC dataplane ■ Will need to ensure host OS, VM and VNF are not the bottlenecks ○ VNF ■ Usually easier to hit VNF performance limits.
  • 40. 40©2017 Open-NFP Test topologies - Host-to-Host Single DUT ● No hardware traffic generator required. ● Single host with SmartNIC ● Use your choice of software traffic generator ○ Moongen (DPDK based) ○ DPDK-pktgen ○ Netperf ○ iperf ● Traffic generator will greatly affect configuration ○ DPDK based generators offer high performance with sufficient vCPUs and memory ○ Netperf/iperf offers simplicity but low performance. Must run multiple instances for useful results. ● Direct connect or switch between SmartNICs ● Less desirable than using a hardware based traffic generator configuration, but much more available
  • 41. 41©2017 Open-NFP Test topologies - VM-to-VM Single DUT ● No hardware traffic generator required. ● Single host with SmartNIC, 2 or more VMs ● Less desirable than using a hardware based traffic generator configuration, but much more available ● Use your choice of software traffic generator ○ Moongen (DPDK based) ○ DPDK-pktgen ○ Netperf ○ iperf ● Traffic generator will greatly affect configuration ○ DPDK based generators offer high performance with sufficient vCPUs and memory ○ Netperf offers simplicity but low performance. Must run multiple instances for useful results. ● Resource allocation and isolation essential (host OS, VMs, traffic generators) for valid results
  • 42. 42©2017 Open-NFP Test topologies - Port-to-Port Single DUT ● Useful for direct SmartNIC benchmarking purposes ○ Traffic does not pass PCIe bus ○ No host optimisation necessary ○ Host resources does not play a factor ○ Results without VNFs ● External traffic generator required (hardware or software) ● Can be achieved in a number of ways ○ Directly programming rules (wire application) ○ Priming flows (offload functionality) /opt/netronome/bin/ovs-ctl configure wire from sdn_p0 to sdn_p1 /opt/netronome/bin/ovs-ctl configure wire from sdn_p1 to sdn_p0
  • 43. 43©2017 Open-NFP Test topologies - Host-to-Host Dual DUT ● 2 hosts connected via a switch. ● No VMs ● Traffic generators ○ Moongen ○ DPDK-pktgen ○ Netperf / iperf ● Physical port speed will be upper throughput limit for large packets. ● Less resource constrained configuration, easier to characterize SmartNIC performance ● Exercises full data path through the SmartNIC
  • 44. 44©2017 Open-NFP Test Topologies - VM-to-VM Dual DUT ● Traffic generators in VMs ○ one or more VMs on each host ● Resource allocation and isolation essential for valid results ● Larger number of VMs requires attention to vCPU allocation and NUMA