Report: Remove skx testbeds
[csit.git] / docs / report / vpp_performance_tests / packet_throughput_graphs / index.rst
1
2 .. raw:: latex
3
4     \clearpage
5
6 .. _VPP_Packet_Throughput:
7
8 Packet Throughput
9 =================
10
11 Throughput graphs are generated based on the results data obtained from
12 the |csit-release| test jobs. In order to verify benchmark results
13 repeatibility selected, CSIT performance tests are executed multiple
14 times (target: 10 times) on each physical testbed type. Box-and-Whisker
15 plots are used to display variations in measured throughput values.
16
17 Lists of tests selected for multiple execution and graphing are captured
18 per testbed type in `test_select_list_{testbed_type}.md
19 <https://git.fd.io/csit/tree/docs/job_specs>`_ files.
20
21 Graphs are split into sections as follows:
22
23 #. **Header 1**: VPP packet path and lookup types
24
25    - **L2 Ethernet Switching**: L2 bridge-doman, L2 cross-connect and L2 patch
26    - **IPv4 Routing**: IPv4 routing with /32 prefixes
27    - **IPv6 Routing**: IPv6 routing with /128 prefixes
28    - **SRv6 Routing**: SRv6 with IPv6 routing
29    - **IPv4 Tunnels**: IPv4 overlay tunnels
30    - **KVM VMs vhost-user**: KVM VMs connected over virtio and vhost-user interfaces
31    - **LXC/DRC Container Memif**: Linux containers and Docker containers connected over Memif interfaces
32    - **IPsec IPv4 Routing**: IPsec encryption/decryption with IPv4 routing
33
34 #. **Header 2**: testbeds and NIC models
35
36    - section name format:
37
38      - {**testbed_type**}-{**nic_model**}
39
40    - **testbed_type**:
41
42      - 2n-icx: 2-node Xeon Icelake
43      - 3n-icx: 3-node Xeon Icelake
44      - 2n-aws: 2-node AWS
45      - 2n-clx: 2-node Xeon Cascade Lake
46      - 2n-zn2: 2-node AMD Zen2
47      - 3n-alt: 2-node Arm Altra
48      - 3n-tsh: 3-node Arm TaiShan
49      - 2n-tx2: 2-node Arm ThunderX2
50      - 2n-dnv: 2-node Atom Denverton
51      - 3n-dnv: 3-node Atom Denverton
52
53    - **nic_model**:
54
55      - xxv710: xxv710 2p25GE Intel (Fortville)
56      - x710: x710 4p10GE Intel (Fortville)
57      - xl710: xl710 2p40GE Intel (Fortville)
58      - x520: x520 2p10GE Intel (Niantic)
59      - x553: x553 2p10GE Intel (Niantic)
60      - cx556a: cx556a-edat 2p100GE Mellanox ConnectX5
61      - e810cq: E810-2CQDA2 2p100GE Intel Columbiaville
62
63 #. **Header 3**: test group names
64
65    - section name format:
66
67      - {**frame_size**}-{**worker_thread_core_cfg**}-{**vpp_functionality**}-{**vpp_lookup_type**}-{**baseline_scale**}-{**nic_driver**}
68
69    - **frame_size**:
70
71      - 64b: 64 byte frames, smallest frame size for untagged IPv4 packets
72      - 78b: 78 byte frames, smallest frame size for untagged IPv6 packets
73      - 114b: VXLAN encapsulated L2 frames
74      - imix: a sequence of (7x64B, 4x570, 1x1518) byte frames
75
76    - **worker_thread_core_cfg**:
77
78      - 1t1c: 1 worker thread on 1 core, hyper-threading not used
79      - 2t1c: 2 worker threads on 1 core, hyper-threading used
80
81    - **vpp_functionality** (optional):
82
83      - features: including input-acl, output-acl, macip-iacl, nat44
84      - srv6: srv6 encap/decap, proxy
85      - link-bonding: L2 link aggregation with 1 or 2 bonded links
86      - ipsec: IPsec encryption/decryption with different ciphers
87      - vts: Virtual Topology System specific tests
88
89    - **vpp_lookup_type**:
90
91      - l2switching, ip4routing, ip6routing, ip4tunnel, vhost, memif
92
93    - **baseline_scale**:
94
95      - base: baseline tests with less than 10 forwarding entries
96      - scale: scale tests with up to 2 million forwarding entries
97      - base-scale: both baseline and scale tests grouped together
98
99    - **nic_driver**:
100
101      - avf: VPP native avf driver for Intel Fortville NICs
102      - i40e: dpdk poll mode driver for Intel Fortville NICs
103      - ixgbe: dpdk poll mode driver for Intel Niantic NICs
104
105 For each test case, Box-and-Whisker plots show the quartiles (Min, 1st
106 quartile / 25th percentile, 2nd quartile / 50th percentile / mean, 3rd
107 quartile / 75th percentile, Max) across collected data set. Outliers are
108 plotted as individual points.
109
110 Additional information about graph data:
111
112 #. **Graph Title**: describes tested packet path, testbed topology,
113    processor model, NIC model, packet size, number of cores and
114    threads used by data plane workers and indication of VPP DUT
115    configuration.
116
117 #. **X-axis Labels**: indices of individual test suites as listed in
118    Graph Legend.
119
120 #. **Y-axis Labels**: measured Packets Per Second [pps] throughput
121    values.
122
123 #. **Graph Legend**: lists X-axis indices with associated CSIT test
124    suites executed to generate graphed test results.
125
126 #. **Hover Information**: lists minimum, first quartile, median,
127    third quartile, and maximum. If either type of outlier is present the
128    whisker on the appropriate side is taken to 1.5×IQR from the quartile
129    (the "inner fence") rather than the max or min, and individual outlying
130    data points are displayed as unfilled circles (for suspected outliers)
131    or filled circles (for outliers). (The "outer fence" is 3×IQR from the
132    quartile.)
133
134 .. note::
135
136     Test results are stored in
137     `build logs from FD.io vpp performance job 2n-icx`_,
138     `build logs from FD.io vpp performance job 3n-icx`_,
139     `build logs from FD.io vpp performance job 2n-aws`_,
140     `build logs from FD.io vpp performance job 2n-clx`_,
141     `build logs from FD.io vpp performance job 2n-zn2`_,
142     `build logs from FD.io vpp performance job 3n-alt`_,
143     `build logs from FD.io vpp performance job 3n-tsh`_,
144     `build logs from FD.io vpp performance job 2n-tx2`_,
145     `build logs from FD.io vpp performance job 2n-dnv`_ and
146     `build logs from FD.io vpp performance job 3n-dnv`_ with RF
147     result files csit-vpp-perf-|srelease|-\*.zip
148     `archived here <../../_static/archive/>`_.
149     Required per test case data set size is **10**, but for VPP tests
150     the actual size varies per test case and is <=10.
151
152 .. toctree::
153     :maxdepth: 3
154
155     l2
156     ip4
157     ip6
158     srv6
159     ip4_tunnels
160     nat44
161     vm_vhost
162     container_memif
163     ipsec