diff options
author | Maciek Konstantynowicz <mkonstan@cisco.com> | 2019-04-02 19:35:34 +0100 |
---|---|---|
committer | Maciek Konstantynowicz <mkonstan@cisco.com> | 2019-07-08 21:14:40 +0000 |
commit | 3be03603203d84ad49fa3fd6f376ecbf0395361b (patch) | |
tree | 3767a31267f5601005a1bc30ab247216cb6e483e /docs/ietf/draft-mkonstan-nf-service-density-00.md | |
parent | 2c44e5fce3842f23500f395a2f811a5ddda0eb99 (diff) |
Update draft-mkonstan-nf-service-density-00->01
Change-Id: Ic63aa09bfff98d358b770e378c5571f1114839b8
Signed-off-by: Maciek Konstantynowicz <mkonstan@cisco.com>
Diffstat (limited to 'docs/ietf/draft-mkonstan-nf-service-density-00.md')
-rw-r--r-- | docs/ietf/draft-mkonstan-nf-service-density-00.md | 874 |
1 files changed, 0 insertions, 874 deletions
diff --git a/docs/ietf/draft-mkonstan-nf-service-density-00.md b/docs/ietf/draft-mkonstan-nf-service-density-00.md deleted file mode 100644 index a3216d06dd..0000000000 --- a/docs/ietf/draft-mkonstan-nf-service-density-00.md +++ /dev/null @@ -1,874 +0,0 @@ ---- -title: NFV Service Density Benchmarking -# abbrev: nf-svc-density -docname: draft-mkonstan-nf-service-density-00 -date: 2019-03-11 - -ipr: trust200902 -area: ops -wg: Benchmarking Working Group -kw: Internet-Draft -cat: info - -coding: us-ascii -pi: # can use array (if all yes) or hash here -# - toc -# - sortrefs -# - symrefs - toc: yes - sortrefs: # defaults to yes - symrefs: yes - -author: - - - ins: M. Konstantynowicz - name: Maciek Konstantynowicz - org: Cisco Systems - role: editor - email: mkonstan@cisco.com - - - ins: P. Mikus - name: Peter Mikus - org: Cisco Systems - role: editor - email: pmikus@cisco.com - -normative: - RFC2544: - RFC8174: - -informative: - RFC8204: - TST009: - target: https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/009/03.01.01_60/gs_NFV-TST009v030101p.pdf - title: "ETSI GS NFV-TST 009 V3.1.1 (2018-10), Network Functions Virtualisation (NFV) Release 3; Testing; Specification of Networking Benchmarks and Measurement Methods for NFVI" - date: 2018-10 - BSDP: - target: https://fd.io/wp-content/uploads/sites/34/2019/03/benchmarking_sw_data_planes_skx_bdx_mar07_2019.pdf - title: "Benchmarking Software Data Planes Intel® Xeon® Skylake vs. Broadwell" - date: 2019-03 - draft-vpolak-mkonstan-bmwg-mlrsearch: - target: https://tools.ietf.org/html/draft-vpolak-mkonstan-bmwg-mlrsearch-00 - title: "Multiple Loss Ratio Search for Packet Throughput (MLRsearch)" - date: 2018-11 - draft-vpolak-bmwg-plrsearch: - target: https://tools.ietf.org/html/draft-vpolak-bmwg-plrsearch-00 - title: "Probabilistic Loss Ratio Search for Packet Throughput (PLRsearch)" - date: 2018-11 - LFN-FDio-CSIT: - target: https://wiki.fd.io/view/CSIT - title: "Fast Data io, Continuous System Integration and Testing Project" - date: 2019-03 - CNCF-CNF-Testbed: - target: https://github.com/cncf/cnf-testbed/ - title: "Cloud native Network Function (CNF) Testbed" - date: 2019-03 - TRex: - target: https://github.com/cisco-system-traffic-generator/trex-core - title: "TRex Low-Cost, High-Speed Stateful Traffic Generator" - date: 2019-03 - CSIT-1901-testbed-2n-skx: - target: https://docs.fd.io/csit/rls1901/report/introduction/physical_testbeds.html#node-xeon-skylake-2n-skx - title: "FD.io CSIT Test Bed" - date: 2019-03 - CSIT-1901-test-enviroment: - target: https://docs.fd.io/csit/rls1901/report/vpp_performance_tests/test_environment.html - title: "FD.io CSIT Test Environment" - date: 2019-03 - CSIT-1901-nfv-density-methodology: - target: https://docs.fd.io/csit/rls1901/report/introduction/methodology_nfv_service_density.html - title: "FD.io CSIT Test Methodology: NFV Service Density" - date: 2019-03 - CSIT-1901-nfv-density-results: - target: https://docs.fd.io/csit/rls1901/report/vpp_performance_tests/nf_service_density/index.html - title: "FD.io CSIT Test Results: NFV Service Density" - date: 2019-03 - CNCF-CNF-Testbed-Results: - target: https://github.com/cncf/cnf-testbed/blob/master/comparison/doc/cncf-cnfs-results-summary.md - title: "CNCF CNF Testbed: NFV Service Density Benchmarking" - date: 2018-12 - ---- abstract - -Network Function Virtualization (NFV) system designers and operators -continuously grapple with the problem of qualifying performance of -network services realised with software Network Functions (NF) running -on Commercial-Off-The-Shelf (COTS) servers. One of the main challenges -is getting repeatable and portable benchmarking results and using them -to derive deterministic operating range that is production deployment -worthy. - -This document specifies benchmarking methodology for NFV services that -aims to address this problem space. It defines a way for measuring -performance of multiple NFV service instances, each composed of multiple -software NFs, and running them at a varied service “packing” density on -a single server. - -The aim is to discover deterministic usage range of NFV system. In -addition specified methodology can be used to compare and contrast -different NFV virtualization technologies. - ---- middle - -# Terminology - -* NFV - Network Function Virtualization, a general industry term - describing network functionality implemented in software. -* NFV service - a software based network service realized by a topology - of interconnected constituent software network function applications. -* NFV service instance - a single instantiation of NFV service. -* Data-plane optimized software - any software with dedicated threads - handling data-plane packet processing e.g. FD.io VPP (Vector Packet - Processor), OVS-DPDK. - -# Motivation - -## Problem Description - -Network Function Virtualization (NFV) system designers and operators -continuously grapple with the problem of qualifying performance of -network services realised with software Network Functions (NF) running -on Commercial-Off-The-Shelf (COTS) servers. One of the main challenges -is getting repeatable and portable benchmarking results and using them -to derive deterministic operating range that is production deployment -worthy. - -Lack of well defined and standardised NFV centric performance -methodology and metrics makes it hard to address fundamental questions -that underpin NFV production deployments: - -1. What NFV service and how many instances can run on a single compute - node? -2. How to choose the best compute resource allocation scheme to maximise - service yield per node? -3. How do different NF applications compare from the service density - perspective? -4. How do the virtualisation technologies compare e.g. Virtual Machines, - Containers? - -Getting answers to these points should allow designers to make a data -based decision about the NFV technology and service design best suited -to meet requirements of their use cases. Equally, obtaining the -benchmarking data underpinning those answers should make it easier for -operators to work out expected deterministic operating range of chosen -design. - -## Proposed Solution - -The primary goal of the proposed benchmarking methodology is to focus on -NFV technologies used to construct NFV services. More specifically to i) -measure packet data-plane performance of multiple NFV service instances -while running them at varied service “packing” densities on a single -server and ii) quantify the impact of using multiple NFs to construct -each NFV service instance and introducing multiple packet processing -hops and links on each packet path. - -The overarching aim is to discover a set of deterministic usage ranges -that are of interest to NFV system designers and operators. In addition, -specified methodology can be used to compare and contrast different NFV -virtualisation technologies. - -In order to ensure wide applicability of the benchmarking methodology, -the approach is to separate NFV service packet processing from the -shared virtualisation infrastructure by decomposing the software -technology stack into three building blocks: - - +-------------------------------+ - | NFV Service | - +-------------------------------+ - | Virtualization Technology | - +-------------------------------+ - | Host Networking | - +-------------------------------+ - - Figure 1. NFV software technology stack. - -Proposed methodology is complementary to existing NFV benchmarking -industry efforts focusing on vSwitch benchmarking [RFC8204], [TST009] -and extends the benchmarking scope to NFV services. - -This document does not describe a complete benchmarking methodology, -instead it is focusing on system under test configuration part. Each of -the compute node configurations identified by (RowIndex, ColumnIndex) is -to be evaluated for NFV service data-plane performance using existing -and/or emerging network benchmarking standards. This may include -methodologies specified in [RFC2544], [TST009], -[draft-vpolak-mkonstan-bmwg-mlrsearch] and/or -[draft-vpolak-bmwg-plrsearch]. - -# NFV Service - -It is assumed that each NFV service instance is built of one or more -constituent NFs and is described by: topology, configuration and -resulting packet path(s). - -Each set of NFs forms an independent NFV service instance, with multiple -sets present in the host. - -## Topology - -NFV topology describes the number of network functions per service -instance, and their inter-connections over packet interfaces. It -includes all point-to-point virtual packet links within the compute -node, Layer-2 Ethernet or Layer-3 IP, including the ones to host -networking data-plane. - -Theoretically, a large set of possible NFV topologies can be realised -using software virtualisation topologies, e.g. ring, partial -/full- -mesh, star, line, tree, ladder. In practice however, only a few -topologies are in the actual use as NFV services mostly perform either -bumps-in-a-wire packet operations (e.g. security filtering/inspection, -monitoring/telemetry) and/or inter-site forwarding decisions (e.g. -routing, switching). - -Two main NFV topologies have been identified so far for NFV service -density benchmarking: - -1. Chain topology: a set of NFs connect to host data-plane with minimum - of two virtual interfaces each, enabling host data-plane to - facilitate NF to NF service chain forwarding and provide connectivity - with external network. - -2. Pipeline topology: a set of NFs connect to each other in a line - fashion with edge NFs homed to host data-plane. Host data-plane - provides connectivity with external network. - -Both topologies are shown in figures below. - -NF chain topology: - - +-----------------------------------------------------------+ - | Host Compute Node | - | | - | +--------+ +--------+ +--------+ | - | | S1NF1 | | S1NF2 | | S1NFn | | - | | | | | .... | | Service1 | - | | | | | | | | - | +-+----+-+ +-+----+-+ + + +-+----+-+ | - | | | | | | | | | Virtual | - | | |<-CS->| |<-CS->| |<-CS->| | Interfaces | - | +-+----+------+----+------+----+------+----+-+ | - | | | CS: Chain | - | | | Segment | - | | Host Data-Plane | | - | +-+--+----------------------------------+--+-+ | - | | | | | | - +-----------------------------------------------------------+ - | | | | Physical - | | | | Interfaces - +---+--+----------------------------------+--+--------------+ - | | - | Traffic Generator | - | | - +-----------------------------------------------------------+ - - Figure 2. NF chain topology forming a service instance. - -NF pipeline topology: - - +-----------------------------------------------------------+ - | Host Compute Node | - | | - | +--------+ +--------+ +--------+ | - | | S1NF1 | | S1NF2 | | S1NFn | | - | | +--+ +--+ .... +--+ | Service1 | - | | | | | | | | - | +-+------+ +--------+ +------+-+ | - | | | Virtual | - | |<-Pipeline Edge Pipeline Edge->| Interfaces | - | +-+----------------------------------------+-+ | - | | | | - | | | | - | | Host Data-Plane | | - | +-+--+----------------------------------+--+-+ | - | | | | | | - +-----------------------------------------------------------+ - | | | | Physical - | | | | Interfaces - +---+--+----------------------------------+--+--------------+ - | | - | Traffic Generator | - | | - +-----------------------------------------------------------+ - - Figure 3. NF pipeline topology forming a service instance. - - -## Configuration - -NFV configuration includes all packet processing functions in NFs -including Layer-2, Layer-3 and/or Layer-4-to-7 processing as appropriate -to specific NF and NFV service design. L2 sub- interface encapsulations -(e.g. 802.1q, 802.1ad) and IP overlay encapsulation (e.g. VXLAN, IPSec, -GRE) may be represented here too as appropriate, although in most cases -they are used as external encapsulation and handled by host networking -data-plane. - -NFV configuration determines logical network connectivity that is -Layer-2 and/or IPv4/IPv6 switching/routing modes, as well as NFV service -specific aspects. In the context of NFV density benchmarking methodology -the initial focus is on the former. - -Building on the two identified NFV topologies, two common NFV -configurations are considered: - -1. Chain configuration: - * Relies on chain topology to form NFV service chains. - * NF packet forwarding designs: - * IPv4/IPv6 routing. - * Requirements for host data-plane: - * L2 switching with L2 forwarding context per each NF chain - segment, or - * IPv4/IPv6 routing with IP forwarding context per each NF chain - segment or per NF chain. - -2. Pipeline configuration: - * Relies on pipeline topology to form NFV service pipelines. - * Packet forwarding designs: - * IPv4/IPv6 routing. - * Requirements for host data-plane: - * L2 switching with L2 forwarding context per each NF pipeline - edge link, or - * IPv4/IPv6 routing with IP forwarding context per each NF pipeline - edge link or per NF pipeline. - -## Packet Path(s) - -NFV packet path(s) describe the actual packet forwarding path(s) used -for benchmarking, resulting from NFV topology and configuration. They -are aimed to resemble true packet forwarding actions during the NFV -service lifecycle. - -Based on the specified NFV topologies and configurations two NFV packet -paths are taken for benchmarking: - -1. Snake packet path - * Requires chain topology and configuration. - * Packets enter the NFV chain through one edge NF and progress to the - other edge NF of the chain. - * Within the chain, packets follow a zigzagging "snake" path entering - and leaving host data-plane as they progress through the NF chain. - * Host data-plane is involved in packet forwarding operations between - NIC interfaces and edge NFs, as well as between NFs in the chain. - -2. Pipeline packet path - * Requires pipeline topology and configuration. - * Packets enter the NFV chain through one edge NF and progress to the - other edge NF of the pipeline. - * Within the chain, packets follow a straight path entering and - leaving subsequent NFs as they progress through the NF pipeline. - * Host data-plane is involved in packet forwarding operations between - NIC interfaces and edge NFs only. - -Both packet paths are shown in figures below. - -Snake packet path: - - +-----------------------------------------------------------+ - | Host Compute Node | - | | - | +--------+ +--------+ +--------+ | - | | S1NF1 | | S1NF2 | | S1NFn | | - | | | | | .... | | Service1 | - | | XXXX | | XXXX | | XXXX | | - | +-+X--X+-+ +-+X--X+-+ +X X+ +-+X--X+-+ | - | |X X| |X X| |X X| |X X| Virtual | - | |X X| |X X| |X X| |X X| Interfaces | - | +-+X--X+------+X--X+------+X--X+------+X--X+-+ | - | | X XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX X | | - | | X X | | - | | X Host Data-Plane X | | - | +-+X-+----------------------------------+-X+-+ | - | |X | | X| | - +----X--------------------------------------X---------------+ - |X | | X| Physical - |X | | X| Interfaces - +---+X-+----------------------------------+-X+--------------+ - | | - | Traffic Generator | - | | - +-----------------------------------------------------------+ - - Figure 4. Snake packet path thru NF chain topology. - - -Pipeline packet path: - - +-----------------------------------------------------------+ - | Host Compute Node | - | | - | +--------+ +--------+ +--------+ | - | | S1NF1 | | S1NF2 | | S1NFn | | - | | +--+ +--+ .... +--+ | Service1 | - | | XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX | | - | +--X-----+ +--------+ +-----X--+ | - | |X X| Virtual | - | |X X| Interfaces | - | +-+X--------------------------------------X+-+ | - | | X X | | - | | X X | | - | | X Host Data-Plane X | | - | +-+X-+----------------------------------+-X+-+ | - | |X | | X| | - +----X--------------------------------------X---------------+ - |X | | X| Physical - |X | | X| Interfaces - +---+X-+----------------------------------+-X+--------------+ - | | - | Traffic Generator | - | | - +-----------------------------------------------------------+ - - Figure 5. Pipeline packet path thru NF pipeline topology. - -In all cases packets enter NFV system via shared physical NIC interfaces -controlled by shared host data-plane, are then associated with specific -NFV service (based on service discriminator) and subsequently are cross- -connected/switched/routed by host data-plane to and through NF -topologies per one of above listed schemes. - -# Virtualization Technology - -NFV services are built of composite isolated NFs, with virtualisation -technology providing the workload isolation. Following virtualisation -technology types are considered for NFV service density benchmarking: - -1. Virtual Machines (VMs) - * Relying on host hypervisor technology e.g. KVM, ESXi, Xen. - * NFs running in VMs are referred to as VNFs. -2. Containers - * Relying on Linux container technology e.g. LXC, Docker. - * NFs running in Containers are referred to as CNFs. - -Different virtual interface types are available to VNFs and CNFs: - -1. VNF - * virtio-vhostuser: fully user-mode based virtual interface. - * virtio-vhostnet: involves kernel-mode based backend. -2. CNF - * memif: fully user-mode based virtual interface. - * af_packet: involves kernel-mode based backend. - * (add more common ones) - -# Host Networking - -Host networking data-plane is the central shared resource that underpins -creation of NFV services. It handles all of the connectivity to external -physical network devices through physical network connections using -NICs, through which the benchmarking is done. - -Assuming that NIC interface resources are shared, here is the list of -widely available host data-plane options for providing packet -connectivity to/from NICs and constructing NFV chain and pipeline -topologies and configurations: - -* Linux Kernel-Mode Networking. -* Linux User-Mode vSwitch. -* Virtual Machine vSwitch. -* Linux Container vSwitch. -* SRIOV NIC Virtual Function - note: restricted support for chain and - pipeline topologies, as it requires hair-pinning through the NIC and - oftentimes also through external physical switch. - -Analysing properties of each of these options and their Pros/Cons for -specified NFV topologies and configurations is outside the scope of this -document. - -From all listed options, performance optimised Linux user-mode vswitch -deserves special attention. Linux user-mode switch decouples NFV service -from the underlying NIC hardware, offers rich multi-tenant functionality -and most flexibility for supporting NFV services. But in the same time -it is consuming compute resources and is harder to benchmark in NFV -service density scenarios. - -Following sections focus on using Linux user-mode vSwitch, focusing on -its performance benchmarking at increasing levels of NFV service -density. - -# NFV Service Density Matrix - -In order to evaluate performance of multiple NFV services running on a -compute node, NFV service instances are benchmarked at increasing -density, allowing to construct an NFV Service Density Matrix. Table -below shows an example of such a matrix, capturing number of NFV service -instances (row indices), number of NFs per service instance (column -indices) and resulting total number of NFs (values). - - NFV Service Density - NF Count View - - SVC 001 002 004 006 008 00N - 001 1 2 4 6 8 1*N - 002 2 4 8 12 16 2*N - 004 4 8 16 24 32 4*N - 006 6 12 24 36 48 6*N - 008 8 16 32 48 64 8*N - 00M M*1 M*2 M*4 M*6 M*8 M*N - - RowIndex: Number of NFV Service Instances, 1..M. - ColumnIndex: Number of NFs per NFV Service Instance, 1..N. - Value: Total number of NFs running in the system. - -In order to deliver good and repeatable network data-plane performance, -NFs and host data-plane software require direct access to critical -compute resources. Due to a shared nature of all resources on a compute -node, a clearly defined resource allocation scheme is defined in the -next section to address this. - -In each tested configuration host data-plane is a gateway between the -external network and the internal NFV network topologies. Offered packet -load is generated and received by an external traffic generator per -usual benchmarking practice. - -It is proposed that initial benchmarks are done with the offered packet -load distributed equally across all configured NFV service instances. -This could be followed by various per NFV service instance load ratios -mimicking expected production deployment scenario(s). - -Following sections specify compute resource allocation, followed by -examples of applying NFV service density methodology to VNF and CNF -benchmarking use cases. - -# Compute Resource Allocation - -Performance optimized NF and host data-plane software threads require -timely execution of packet processing instructions and are very -sensitive to any interruptions (or stalls) to this execution e.g. cpu -core context switching, or cpu jitter. To that end, NFV service density -methodology treats controlled mapping ratios of data plane software -threads to physical processor cores with directly allocated cache -hierarchies as the first order requirement. - -Other compute resources including memory bandwidth and PCIe bandwidth -have lesser impact and as such are subject for further study. For more -detail and deep-dive analysis of software data plane performance and -impact on different shared compute resources is available in [BSDP]. - -It is assumed that NFs as well as host data-plane (e.g. vswitch) are -performance optimized, with their tasks executed in two types of -software threads: - -* data-plane - handling data-plane packet processing and forwarding, - time critical, requires dedicated cores. To scale data-plane - performance, most NF apps use multiple data-plane threads and rely on - NIC RSS (Receive Side Scaling), virtual interface multi-queue and/or - integrated software hashing to distribute packets across the data - threads. - -* main-control - handling application management, statistics and - control-planes, less time critical, allows for core sharing. For most - NF apps this is a single main thread, but often statistics (counters) - and various control protocol software are run in separate threads. - -Core mapping scheme described below allocates cores for all threads of -specified type belonging to each NF app instance, and separately lists -number of threads to a number of logical/physical core mappings for -processor configurations with enabled/disabled Symmetric Multi- -Threading (SMT) (e.g. AMD SMT, Intel Hyper-Threading). - -If NFV service density benchmarking is run on server nodes with -Symmetric Multi-Threading (SMT) (e.g. AMD SMT, Intel Hyper-Threading) -for higher performance and efficiency, logical cores allocated to data- -plane threads should be allocated as pairs of sibling logical cores -corresponding to the hyper-threads running on the same physical core. - -Separate core ratios are defined for mapping threads of vSwitch and NFs. -In order to get consistent benchmarking results, the mapping ratios are -enforced using Linux core pinning. - -| application | thread type | app:core ratio | threads/pcores (SMT disabled) | threads/lcores map (SMT enabled) | -|:-----------:|:-----------:|:--------------:|:-------------------------------:|:----------------------------------:| -| vSwitch-1c | data | 1:1 | 1DT/1PC | 2DT/2LC | -| | main | 1:S2 | 1MT/S2PC | 1MT/1LC | -| | | | | | -| vSwitch-2c | data | 1:2 | 2DT/2PC | 4DT/4LC | -| | main | 1:S2 | 1MT/S2PC | 1MT/1LC | -| | | | | | -| vSwitch-4c | data | 1:4 | 4DT/4PC | 8DT/8LC | -| | main | 1:S2 | 1MT/S2PC | 1MT/1LC | -| | | | | | -| NF-0.5c | data | 1:S2 | 1DT/S2PC | 1DT/1LC | -| | main | 1:S2 | 1MT/S2PC | 1MT/1LC | -| | | | | | -| NF-1c | data | 1:1 | 1DT/1PC | 2DT/2LC | -| | main | 1:S2 | 1MT/S2PC | 1MT/1LC | -| | | | | | -| NF-2c | data | 1:2 | 2DT/2PC | 4DT/4LC | -| | main | 1:S2 | 1MT/S2PC | 1MT/1LC | - -* Legend to table - * Header row - * application - network application with optimized data-plane, a - vSwitch or Network Function (NF) application. - * thread type - either "data", short for data-plane; or "main", - short for all main-control threads. - * app:core ratio - ratio of per application instance threads of - specific thread type to physical cores. - * threads/pcores (SMT disabled) - number of threads of specific - type (DT for data-plane thread, MT for main thread) running on a - number of physical cores, with SMT disabled. - * threads/lcores map (SMT enabled) - number of threads of specific - type (DT, MT) running on a number of logical cores, with SMT - enabled. Two logical cores per one physical core. - * Content rows - * vSwitch-(1c|2c|4c) - vSwitch with 1 physical core (or 2, or 4) - allocated to its data-plane software worker threads. - * NF-(0.5c|1c|2c) - NF application with half of a physical core (or - 1, or 2) allocated to its data-plane software worker threads. - * Sn - shared core, sharing ratio of (n). - * DT - data-plane thread. - * MT - main-control thread. - * PC - physical core, with SMT/HT enabled has many (mostly 2 today) - logical cores associated with it. - * LC - logical core, if more than one lc get allocated in sets of - two sibling logical cores running on the same physical core. - * SnPC - shared physical core, sharing ratio of (n). - * SnLC - shared logical core, sharing ratio of (n). - -Maximum benchmarked NFV service densities are limited by a number of -physical cores on a compute node. - -A sample physical core usage view is shown in the matrix below. - - NFV Service Density - Core Usage View - vSwitch-1c, NF-1c - - SVC 001 002 004 006 008 010 - 001 2 3 6 9 12 15 - 002 3 6 12 18 24 30 - 004 6 12 24 36 48 60 - 006 9 18 36 54 72 90 - 008 12 24 48 72 96 120 - 010 15 30 60 90 120 150 - - RowIndex: Number of NFV Service Instances, 1..10. - ColumnIndex: Number of NFs per NFV Service Instance, 1..10. - Value: Total number of physical processor cores used for NFs. - -# NFV Service Density Benchmarks - -To illustrate defined NFV service density applicability, following -sections describe three sets of NFV service topologies and -configurations that have been benchmarked in open-source: i) in -[LFN-FDio-CSIT], a continuous testing and data-plane benchmarking -project, and ii) as part of CNCF CNF Testbed initiative -[CNCF-CNF-Testbed]. - -In both cases each NFV service instance definition is based on the same -set of NF applications, and varies only by network addressing -configuration to emulate multi-tenant operating environment. - -## Test Methodology - MRR Throughput - -Initial NFV density throughput benchmarks have been performed using -Maximum Receive Rate (MRR) test methodology defined and used in FD.io -CSIT. - -MRR tests measure the packet forwarding rate under the maximum load -offered by traffic generator over a set trial duration, regardless of -packet loss. Maximum load for specified Ethernet frame size is set to -the bi-directional link rate (2x 10GbE in referred results). - -Tests were conducted with two traffic profiles: i) continuous stream of -64B frames, ii) continuous stream of IMIX sequence of (7x 64B, 4x 570B, -1x 1518B), all sizes are L2 untagged Ethernet. - -NFV service topologies tested include: VNF service chains, CNF service -chains and CNF service pipelines. - -## VNF Service Chain - -VNF Service Chain (VSC) topology is tested with KVM hypervisor (Ubuntu -18.04-LTS), with NFV service instances consisting of NFs running in VMs -(VNFs). Host data-plane is provided by FD.io VPP vswitch. Virtual -interfaces are virtio-vhostuser. Snake forwarding packet path is tested -using [TRex] traffic generator, see figure. - - +-----------------------------------------------------------+ - | Host Compute Node | - | | - | +--------+ +--------+ +--------+ | - | | S1VNF1 | | S1VNF2 | | S1VNFn | | - | | | | | .... | | Service1 | - | | XXXX | | XXXX | | XXXX | | - | +-+X--X+-+ +-+X--X+-+ +-+X--X+-+ | - | |X X| |X X| |X X| Virtual | - | |X X| |X X| |X X| |X X| Interfaces | - | +-+X--X+------+X--X+------+X--X+------+X--X+-+ | - | | X XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX X | | - | | X X | | - | | X FD.io VPP vSwitch X | | - | +-+X-+----------------------------------+-X+-+ | - | |X | | X| | - +----X--------------------------------------X---------------+ - |X | | X| Physical - |X | | X| Interfaces - +---+X-+----------------------------------+-X+--------------+ - | | - | Traffic Generator (TRex) | - | | - +-----------------------------------------------------------+ - - Figure 6. VNF service chain test setup. - - -## CNF Service Chain - -CNF Service Chain (CSC) topology is tested with Docker containers -(Ubuntu 18.04-LTS), with NFV service instances consisting of NFs running -in Containers (CNFs). Host data-plane is provided by FD.io VPP vswitch. -Virtual interfaces are memif. Snake forwarding packet path is tested -using [TRex] traffic generator, see figure. - - +-----------------------------------------------------------+ - | Host Compute Node | - | | - | +--------+ +--------+ +--------+ | - | | S1CNF1 | | S1CNF2 | | S1CNFn | | - | | | | | .... | | Service1 | - | | XXXX | | XXXX | | XXXX | | - | +-+X--X+-+ +-+X--X+-+ +-+X--X+-+ | - | |X X| |X X| |X X| Virtual | - | |X X| |X X| |X X| |X X| Interfaces | - | +-+X--X+------+X--X+------+X--X+------+X--X+-+ | - | | X XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX X | | - | | X X | | - | | X FD.io VPP vSwitch X | | - | +-+X-+----------------------------------+-X+-+ | - | |X | | X| | - +----X--------------------------------------X---------------+ - |X | | X| Physical - |X | | X| Interfaces - +---+X-+----------------------------------+-X+--------------+ - | | - | Traffic Generator (TRex) | - | | - +-----------------------------------------------------------+ - - Figure 7. CNF service chain test setup. - -## CNF Service Pipeline - -CNF Service Pipeline (CSP) topology is tested with Docker containers -(Ubuntu 18.04-LTS), with NFV service instances consisting of NFs running -in Containers (CNFs). Host data-plane is provided by FD.io VPP vswitch. -Virtual interfaces are memif. Pipeline forwarding packet path is tested -using [TRex] traffic generator, see figure. - - +-----------------------------------------------------------+ - | Host Compute Node | - | | - | +--------+ +--------+ +--------+ | - | | S1NF1 | | S1NF2 | | S1NFn | | - | | +--+ +--+ .... +--+ | Service1 | - | | XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX | | - | +--X-----+ +--------+ +-----X--+ | - | |X X| Virtual | - | |X X| Interfaces | - | +-+X--------------------------------------X+-+ | - | | X X | | - | | X X | | - | | X FD.io VPP vSwitch X | | - | +-+X-+----------------------------------+-X+-+ | - | |X | | X| | - +----X--------------------------------------X---------------+ - |X | | X| Physical - |X | | X| Interfaces - +---+X-+----------------------------------+-X+--------------+ - | | - | Traffic Generator (TRex) | - | | - +-----------------------------------------------------------+ - - Figure 8. CNF service chain test setup. - -## Sample Results: FD.io CSIT - -FD.io CSIT project introduced NFV density benchmarking in release -CSIT-1901 and published results for the following NFV service topologies -and configurations: - -1. VNF Service Chains - * VNF: DPDK-L3FWD v18.10 - * IPv4 forwarding - * NF-1c - * vSwitch: VPP v19.01-release - * L2 MAC switching - * vSwitch-1c, vSwitch-2c - * frame sizes: 64B, IMIX -2. CNF Service Chains - * CNF: VPP v19.01-release - * IPv4 routing - * NF-1c - * vSwitch: VPP v19.01-release - * L2 MAC switching - * vSwitch-1c, vSwitch-2c - * frame sizes: 64B, IMIX -3. CNF Service Pipelines - * CNF: VPP v19.01-release - * IPv4 routing - * NF-1c - * vSwitch: VPP v19.01-release - * L2 MAC switching - * vSwitch-1c, vSwitch-2c - * frame sizes: 64B, IMIX - -More information is available in FD.io CSIT-1901 report, with specific -references listed below: - -* Testbed: [CSIT-1901-testbed-2n-skx] -* Test environment: [CSIT-1901-test-enviroment] -* Methodology: [CSIT-1901-nfv-density-methodology] -* Results: [CSIT-1901-nfv-density-results] - -## Sample Results: CNCF/CNFs - -CNCF CI team introduced a CNF testbed initiative focusing on benchmaring -NFV density with open-source network applications running as VNFs and -CNFs. Following NFV service topologies and configurations have been -tested to date: - -1. VNF Service Chains - * VNF: VPP v18.10-release - * IPv4 routing - * NF-1c - * vSwitch: VPP v18.10-release - * L2 MAC switching - * vSwitch-1c, vSwitch-2c - * frame sizes: 64B, IMIX -2. CNF Service Chains - * CNF: VPP v18.10-release - * IPv4 routing - * NF-1c - * vSwitch: VPP v18.10-release - * L2 MAC switching - * vSwitch-1c, vSwitch-2c - * frame sizes: 64B, IMIX -3. CNF Service Pipelines - * CNF: VPP v18.10-release - * IPv4 routing - * NF-1c - * vSwitch: VPP v18.10-release - * L2 MAC switching - * vSwitch-1c, vSwitch-2c - * frame sizes: 64B, IMIX - -More information is available in CNCF CNF Testbed github, with summary -test results presented in summary markdown file, references listed -below: - -* Results: [CNCF-CNF-Testbed-Results] - -# IANA Considerations - -No requests of IANA - -# Security Considerations - -.. - -# Acknowledgements - -Thanks to Vratko Polak of FD.io CSIT project and Michael Pedersen of the -CNCF Testbed initiative for their contributions and useful suggestions. - ---- back
\ No newline at end of file |