9b0fb21bb716ad6ee429d15b21be3e791294075c
[vpp.git] / docs / whatisvpp / performance.rst
1 .. _performance:
2
3 Performance
4 ===========
5
6 One of the benefits of FD.io VPP is it's high performance on relatively low-power computing.
7 Included are the following.
8
9 * A high-performance user-space network stack designed for commodity hardware:
10
11   - L2, L3 and L4 features and encapsulations.
12
13 * Optimized packet interfaces supporting a multitude of use cases:
14
15   - An integrated vhost-user backend for high speed VM-to-VM connectivity
16   - An integrated memif container backend for high speed Container-to-Container connectivity
17   - An integrated vhost based interface to punt packets to the Linux Kernel
18
19 * The same optimized code-paths run execute on the host, and inside VMs and Linux containers
20 * Leverages best-of-breed open source driver technology: `DPDK <https://www.dpdk.org/>`_
21 * Tested at scale; linear core scaling, tested with millions of flows and mac addresses  
22
23 These features have been designed to take full advantage of common micro-processor optimization techniques, such as: 
24
25 * Reducing cache and TLS misses by processing packets in vectors
26 * Realizing `IPC <https://en.wikipedia.org/wiki/Instructions_per_cycle>`_ gains with vector instructions such as: SSE, AVX and NEON
27 * Eliminating mode switching, context switches and blocking, to always be doing useful work
28 * Cache-lined aligned buffers for cache and memory efficiency
29
30
31 Continuous System Integration and Testing (CSIT)
32 ------------------------------------------------
33
34 The Continuous System Integration and Testing (CSIT) project provides functional and performance
35 testing for FD.io VPP. This testing is focused on functional and performance regresssions. The results
36 are posted to `CSIT Test Report <https://docs.fd.io/csit/master/report/>`_.
37
38 For more about CSIT checkout the following links:
39
40 * `CSIT Code Documentation <https://docs.fd.io/csit/master/doc/overview.html>`_
41 * `CSIT Test Overview <https://docs.fd.io/csit/master/report/introduction/overview.html>`_
42 * `VPP Performance Dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_
43
44
45 CSIT Packet Throughput examples
46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
47
48 Following are pointers to a few of the CSIT test reports. The test's titles read like this:
49
50 <packet size>-<number of threads><number of cores>-<test>-<interface type> 
51
52 For example the test with the title 64b-2t1c-l2switching-base-i40e is the
53 test that does l2 switching using 64 byte packets, 2 threads, 1 core using an i40e
54 interface.
55
56 Here are a few examples:
57
58 * `L2 Ethernet switching <https://docs.fd.io/csit/master/report/vpp_performance_tests/packet_throughput_graphs/l2.html>`_
59 * `IPv4 Routing <https://docs.fd.io/csit/master/report/vpp_performance_tests/packet_throughput_graphs/ip4.html>`_
60 * `IPv6 Routing <https://docs.fd.io/csit/master/report/vpp_performance_tests/packet_throughput_graphs/ip6.html>`_
61
62
63 Trending Throughput Graphs
64 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 
65
66 These are some of the trending packet throughput graphs from the CSIT `trending dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_. **Please note that**, performance in the trending graphs will change on a nightly basis in line with the software development cycle:
67
68 * `L2 Ethernet Switching Trending <https://docs.fd.io/csit/master/trending/trending/l2.html>`_
69 * `IPv4 Routing Trending <https://docs.fd.io/csit/master/trending/trending/ip4.html>`_
70 * `IPv6 Routing Trending <https://docs.fd.io/csit/master/trending/trending/ip6.html>`_