4f43715dce82317a2b3e18a26f40f2aadb8114c4
[csit.git] / docs / report / vpp_performance_tests_hw / packet_throughput_graphs / vm_vhost.rst
1 VM vhost Connections\r
2 ====================\r
3 \r
4 Following sections provide a summary of VPP Phy-to-VM-to-Phy VM vhost-user\r
5 performance illustrating NDR throughput (zero packet loss) and PDR throughput\r
6 (<0.5% packet loss). Performance is reported for VPP running in multiple\r
7 configurations of VPP worker thread(s), a.k.a. VPP data plane thread (s), and\r
8 their physical CPU core(s) placement.\r
9 \r
10 Title of each graph is a regex (regular expression) matching all plotted\r
11 test case throughput measurements.\r
12 \r
13 .. note::\r
14 \r
15     Data sources for reported test results: i) FD.io test executor jobs\r
16     `csit-vpp-perf-1701-all\r
17     <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1701-all/>`_ and\r
18     `csit-vpp-perf-1701-long\r
19     <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1701-long/>`_\r
20     , ii) archived FD.io jobs test result output files\r
21     `csit-vpp-perf-1701-all#job-number <https://nexus.fd.io/link>`_.\r
22 \r
23 NDR Throughput\r
24 ~~~~~~~~~~~~~~\r
25 \r
26 VPP NDR Throughput - running in configuration of **one worker thread (1t) on one\r
27 physical core (1c)** - is presented in the figure below.\r
28 \r
29 .. raw:: html\r
30 \r
31     <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-ndrdisc.html"></iframe>\r
32 \r
33 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-VM-to-Phy VM\r
34 vhost-user.*\r
35 \r
36 CSIT test cases used to generate results presented above can be found in CSIT\r
37 git repository by filtering with specified regex as follows:\r
38 \r
39 .. code-block:: bash\r
40 \r
41     $ csit/tests/perf\r
42     $ grep -E "64B-1t1c-.*vhost.*-ndrdisc" *\r
43 \r
44     10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
45     10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
46     10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc\r
47     10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
48     10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
49     10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
50     10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
51     40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
52 \r
53 VPP NDR Throughput - running in configuration of **two worker threads (2t) on\r
54 two physical cores (2c)** - is presented in the figure below.\r
55 \r
56 .. raw:: html\r
57 \r
58     <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-ndrdisc.html"></iframe>\r
59 \r
60 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-VM-to-Phy VM\r
61 vhost-user.*\r
62 \r
63 CSIT test cases used to generate results presented above can be found in CSIT\r
64 git repository by filtering with specified regex as follows:\r
65 \r
66 .. code-block:: bash\r
67 \r
68     $ csit/tests/perf\r
69     $ grep -E "64B-2t2c-.*vhost.*-ndrdisc" *\r
70 \r
71     10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
72     10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
73     10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc\r
74     10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
75     10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
76     10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
77     10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
78     40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
79 \r
80 VPP NDR Throughput - running in configuration of **four worker threads (4t) on\r
81 four physical cores (4c)** - is presented in the figure below.\r
82 \r
83 .. raw:: html\r
84 \r
85     <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-vhost-ndrdisc.html"></iframe>\r
86 \r
87 *Figure 3. VPP 4threads 4cores - NDR Throughput for Phy-to-VM-to-Phy VM\r
88 vhost-user.*\r
89 \r
90 CSIT test cases used to generate results presented above can be found in CSIT\r
91 git repository by filtering with specified regex as follows:\r
92 \r
93 .. code-block:: bash\r
94 \r
95     $ csit/tests/perf\r
96     $ grep -E "64B-4t4c-.*vhost.*-ndrdisc" *\r
97 \r
98     10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
99     10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
100     10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc\r
101     10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
102     10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
103     10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
104     10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
105     40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
106 \r
107 PDR Throughput\r
108 ~~~~~~~~~~~~~~\r
109 \r
110 VPP PDR Throughput - running in configuration of **one worker thread (1t) on one\r
111 physical core (1c)** - is presented in the figure below. PDR at below 0.5%\r
112 packet loss ratio.\r
113 \r
114 .. raw:: html\r
115 \r
116     <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-pdrdisc.html"></iframe>\r
117 \r
118 *Figure 4. VPP 1thread 1core - PDR Throughput for Phy-to-VM-to-Phy VM\r
119 vhost-user.*\r
120 \r
121 CSIT test cases used to generate results presented above can be found in CSIT\r
122 git repository by filtering with specified regex as follows:\r
123 \r
124 .. code-block:: bash\r
125 \r
126     $ csit/tests/perf\r
127     $ grep -E "64B-1t1c-.*vhost.*-pdrdisc" *\r
128 \r
129     10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
130     10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
131     10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc\r
132     10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
133     10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
134     10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
135     10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
136     40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
137 \r
138 VPP PDR Throughput - running in configuration of **two worker threads (2t) on\r
139 two physical cores (2c)** - is presented in the figure below.\r
140 \r
141 .. raw:: html\r
142 \r
143     <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-pdrdisc.html"></iframe>\r
144 \r
145 *Figure 5. VPP 2thread 2core - PDR Throughput for Phy-to-VM-to-Phy VM\r
146 vhost-user.*\r
147 \r
148 CSIT test cases used to generate results presented above can be found in CSIT\r
149 git repository by filtering with specified regex as follows:\r
150 \r
151 .. code-block:: bash\r
152 \r
153     $ csit/tests/perf\r
154     $ grep -E "64B-2t2c-.*vhost.*-pdrdisc" *\r
155 \r
156     10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
157     10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
158     10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc\r
159     10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
160     10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
161     10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
162     10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
163     40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
164 \r
165 VPP PDR Throughput - running in configuration of **four worker threads (4t) on\r
166 four physical cores (4c)** - is presented in the figure below.\r
167 \r
168 .. raw:: html\r
169 \r
170     <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-vhost-pdrdisc.html"></iframe>\r
171 \r
172 *Figure 6. VPP 4thread 4core - PDR Throughput for Phy-to-VM-to-Phy VM\r
173 vhost-user.*\r
174 \r
175 CSIT test cases used to generate results presented above can be found in CSIT\r
176 git repository by filtering with specified regex as follows:\r
177 \r
178 .. code-block:: bash\r
179 \r
180     $ csit/tests/perf\r
181     $ grep -E "64B-4t4c-.*vhost.*-pdrdisc" *\r
182 \r
183     10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
184     10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
185     10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc\r
186     10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
187     10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
188     10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
189     10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
190     40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
191 \r