X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=docs%2Freport%2Fvpp_performance_tests%2Fpacket_throughput_graphs%2Fvm_vhost.rst;h=528a26cc19e557b60815ae1ef39fa4f5e2ad57c7;hb=089d0c870a6d5165fa172377bc96adb0be57f2e3;hp=b5bc0dd5a39731b21608419e31133a7593e53c02;hpb=da2aa127ee071e37bc4d6060dd39476179e65365;p=csit.git diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst index b5bc0dd5a3..528a26cc19 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst @@ -1,191 +1,215 @@ VM vhost Connections ==================== -Following sections provide a summary of VPP Phy-to-VM-to-Phy VM vhost-user -performance illustrating NDR throughput (zero packet loss) and PDR throughput -(<0.5% packet loss). Performance is reported for VPP running in multiple -configurations of VPP worker thread(s), a.k.a. VPP data plane thread (s), and -their physical CPU core(s) placement. +Following sections include summary graphs of VPP Phy-to-VM(s)-to-Phy +performance with VM virtio and VPP vhost-user virtual interfaces, +including NDR throughput (zero packet loss) and PDR throughput (<0.5% +packet loss). Performance is reported for VPP running in multiple +configurations of VPP worker thread(s), a.k.a. VPP data plane thread(s), +and their physical CPU core(s) placement. -Title of each graph is a regex (regular expression) matching all plotted -test case throughput measurements. +NDR Throughput +~~~~~~~~~~~~~~ -.. note:: +VPP NDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented +in the graph below. - Data sources for reported test results: i) FD.io test executor jobs - `csit-vpp-perf-1701-all - `_ and - `csit-vpp-perf-1701-long - `_ - , ii) archived FD.io jobs test result `output files - <../../_static/archive/>`_. +.. raw:: html -NDR Throughput -~~~~~~~~~~~~~~ + + +.. raw:: latex + + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-vhost-sel1-ndrdisc} + \label{fig:64B-1t1c-vhost-sel1-ndrdisc} + \end{figure} -VPP NDR Throughput - running in configuration of **one worker thread (1t) on one -physical core (1c)** - is presented in the figure below. +*Figure 1a. VPP 1thread 1core - NDR Throughput for Phy-to-VM-to-Phy VM vhost-user +selected TCs.* .. raw:: html - + -*Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-VM-to-Phy VM -vhost-user.* +.. raw:: latex -CSIT test cases used to generate results presented above can be found in CSIT -git repository by filtering with specified regex as follows: + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-vhost-sel2-ndrdisc} + \label{fig:64B-1t1c-vhost-sel2-ndrdisc} + \end{figure} -.. code-block:: bash +*Figure 1b. VPP 1thread 1core - NDR Throughput for Phy-to-VM-to-Phy VM +vhost-user selected TCs.* - $ csit/tests/perf - $ grep -E "64B-1t1c-.*vhost.*-ndrdisc" * +CSIT source code for the test cases used for above plots can be found in CSIT +git repository: - 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc - 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +.. only:: html -VPP NDR Throughput - running in configuration of **two worker threads (2t) on -two physical cores (2c)** - is presented in the figure below. + .. program-output:: cd ../../../../../ && set -x && cd tests/vpp/perf/vm_vhost && grep -E "64B-1t1c-.*vhost.*-ndrdisc" * + :shell: -.. raw:: html +.. only:: latex + + .. code-block:: bash - + $ cd tests/vpp/perf/vm_vhost + $ grep -E "64B-1t1c-.*vhost.*-ndrdisc" * -*Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-VM-to-Phy VM -vhost-user.* +VPP NDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented +in the graph below. -CSIT test cases used to generate results presented above can be found in CSIT -git repository by filtering with specified regex as follows: +.. raw:: html -.. code-block:: bash + - $ csit/tests/perf - $ grep -E "64B-2t2c-.*vhost.*-ndrdisc" * +.. raw:: latex - 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc - 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-vhost-sel1-ndrdisc} + \label{fig:64B-2t2c-vhost-sel1-ndrdisc} + \end{figure} -VPP NDR Throughput - running in configuration of **four worker threads (4t) on -four physical cores (4c)** - is presented in the figure below. +*Figure 2a. VPP 2threads 2cores - NDR Throughput for Phy-to-VM-to-Phy VM +vhost-user selected TCs.* .. raw:: html - + + +.. raw:: latex + + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-vhost-sel2-ndrdisc} + \label{fig:64B-2t2c-vhost-sel2-ndrdisc} + \end{figure} + +*Figure 2b. VPP 2threads 2cores - NDR Throughput for Phy-to-VM-to-Phy VM +vhost-user selected TCs.* -*Figure 3. VPP 4threads 4cores - NDR Throughput for Phy-to-VM-to-Phy VM -vhost-user.* +CSIT source code for the test cases used for above plots can be found in CSIT +git repository: -CSIT test cases used to generate results presented above can be found in CSIT -git repository by filtering with specified regex as follows: +.. only:: html -.. code-block:: bash + .. program-output:: cd ../../../../../ && set -x && cd tests/vpp/perf/vm_vhost && grep -E "64B-2t2c-.*vhost.*-ndrdisc" * + :shell: - $ csit/tests/perf - $ grep -E "64B-4t4c-.*vhost.*-ndrdisc" * +.. only:: latex - 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc - 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc - 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc + .. code-block:: bash + + $ cd tests/vpp/perf/vm_vhost + $ grep -E "64B-2t2c-.*vhost.*-ndrdisc" * PDR Throughput ~~~~~~~~~~~~~~ -VPP PDR Throughput - running in configuration of **one worker thread (1t) on one -physical core (1c)** - is presented in the figure below. PDR at below 0.5% -packet loss ratio. +VPP PDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented +in the graph below. PDR measured for 0.5% packet loss ratio. .. raw:: html - + + +.. raw:: latex -*Figure 4. VPP 1thread 1core - PDR Throughput for Phy-to-VM-to-Phy VM -vhost-user.* + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-vhost-sel1-pdrdisc} + \label{fig:64B-1t1c-vhost-sel1-pdrdisc} + \end{figure} -CSIT test cases used to generate results presented above can be found in CSIT -git repository by filtering with specified regex as follows: +*Figure 3a. VPP 1thread 1core - PDR Throughput for Phy-to-VM-to-Phy VM +vhost-user selected TCs.* -.. code-block:: bash +.. raw:: html - $ csit/tests/perf - $ grep -E "64B-1t1c-.*vhost.*-pdrdisc" * + - 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc - 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +.. raw:: latex -VPP PDR Throughput - running in configuration of **two worker threads (2t) on -two physical cores (2c)** - is presented in the figure below. + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-vhost-sel2-pdrdisc} + \label{fig:64B-1t1c-vhost-sel2-pdrdisc} + \end{figure} -.. raw:: html +*Figure 3b. VPP 1thread 1core - PDR Throughput for Phy-to-VM-to-Phy VM +vhost-user selected TCs.* - +CSIT source code for the test cases used for above plots can be found in CSIT +git repository: -*Figure 5. VPP 2thread 2core - PDR Throughput for Phy-to-VM-to-Phy VM -vhost-user.* +.. only:: html -CSIT test cases used to generate results presented above can be found in CSIT -git repository by filtering with specified regex as follows: + .. program-output:: cd ../../../../../ && set -x && cd tests/vpp/perf/vm_vhost && grep -E "64B-1t1c-.*vhost.*-pdrdisc" * + :shell: -.. code-block:: bash +.. only:: latex - $ csit/tests/perf - $ grep -E "64B-2t2c-.*vhost.*-pdrdisc" * + .. code-block:: bash - 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc - 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc + $ cd tests/vpp/perf/vm_vhost + $ grep -E "64B-1t1c-.*vhost.*-pdrdisc" * -VPP PDR Throughput - running in configuration of **four worker threads (4t) on -four physical cores (4c)** - is presented in the figure below. +VPP PDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented +in the graph below. PDR measured for 0.5% packet loss ratio. .. raw:: html - + + +.. raw:: latex + + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-vhost-sel1-pdrdisc} + \label{fig:64B-2t2c-vhost-sel1-pdrdisc} + \end{figure} + +*Figure 4a. VPP 2thread 2core - PDR Throughput for Phy-to-VM-to-Phy VM +vhost-user selected TCs.* + +.. raw:: html + + + +.. raw:: latex + + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-vhost-sel2-pdrdisc} + \label{fig:64B-2t2c-vhost-sel2-pdrdisc} + \end{figure} + +*Figure 4b. VPP 2thread 2core - PDR Throughput for Phy-to-VM-to-Phy VM +vhost-user selected TCs.* -*Figure 6. VPP 4thread 4core - PDR Throughput for Phy-to-VM-to-Phy VM -vhost-user.* +CSIT source code for the test cases used for above plots can be found in CSIT +git repository: -CSIT test cases used to generate results presented above can be found in CSIT -git repository by filtering with specified regex as follows: +.. only:: html -.. code-block:: bash + .. program-output:: cd ../../../../../ && set -x && cd tests/vpp/perf/vm_vhost && grep -E "64B-2t2c-.*vhost.*-pdrdisc" * + :shell: - $ csit/tests/perf - $ grep -E "64B-4t4c-.*vhost.*-pdrdisc" * +.. only:: latex - 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc - 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc - 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc + .. code-block:: bash + $ cd tests/vpp/perf/vm_vhost + $ grep -E "64B-2t2c-.*vhost.*-pdrdisc" *