-Container Orchestrated Topologies
-=================================
+
+.. raw:: latex
+
+ \clearpage
+
+.. raw:: html
+
+ <script type="text/javascript">
+
+ function getDocHeight(doc) {
+ doc = doc || document;
+ var body = doc.body, html = doc.documentElement;
+ var height = Math.max( body.scrollHeight, body.offsetHeight,
+ html.clientHeight, html.scrollHeight, html.offsetHeight );
+ return height;
+ }
+
+ function setIframeHeight(id) {
+ var ifrm = document.getElementById(id);
+ var doc = ifrm.contentDocument? ifrm.contentDocument:
+ ifrm.contentWindow.document;
+ ifrm.style.visibility = 'hidden';
+ ifrm.style.height = "10px"; // reset to minimal height ...
+ // IE opt. for bing/msn needs a bit added or scrollbar appears
+ ifrm.style.height = getDocHeight( doc ) + 4 + "px";
+ ifrm.style.visibility = 'visible';
+ }
+
+ </script>
+
+K8s Container Memif
+===================
Following sections include summary graphs of VPP Phy-to-Phy performance
with Container Orchestrated Topologies, including NDR throughput (zero packet
running in multiple configurations of VPP worker thread(s), a.k.a. VPP
data plane thread(s), and their physical CPU core(s) placement.
-NDR Throughput
-~~~~~~~~~~~~~~
+CSIT source code for the test cases used for plots can be found in
+`CSIT git repository <https://git.fd.io/csit/tree/tests/kubernetes/perf/container_memif?h=rls1810>`_.
+
+.. raw:: latex
+
+ \clearpage
+
+3n-hsw-x520
+~~~~~~~~~~~
+
+64b-1t1c-base_and_scale-l2xc
+----------------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-ndr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-pdr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2xc-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-base_and_scale-l2xc
+----------------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-ndr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-pdr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2xc-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-1t1c-base_and_scale-l2bd
+----------------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-ndr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
-VPP NDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented
-in the graph below.
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-pdr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-1t1c-base_and_scale-l2bd-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-base_and_scale-l2bd
+----------------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-ndr`
.. raw:: html
- <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-container-orchestrated-ndrdisc.html"></iframe>
+ </b>
+ <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
.. raw:: latex
\begin{figure}[H]
\centering
\graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-container-orchestrated-ndrdisc}
- \label{fig:64B-1t1c-container-orchestrated-ndrdisc}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-ndr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-ndr}
\end{figure}
-*Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy L2 Ethernet
-Switching (base).*
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-pdr`
+
+.. raw:: html
-CSIT source code for the test cases used for above plots can be found in CSIT
-git repository:
+ </b>
+ <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
-.. only:: html
+.. raw:: latex
- .. program-output:: cd ../../../../../ && set -x && cd tests/kubernetes/perf/container_memif && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*ndrdisc" *
- :shell:
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-pdr}
+ \label{fig:k8s-memif-3n-hsw-x520-64b-2t2c-base_and_scale-l2bd-pdr}
+ \end{figure}
-.. only:: latex
+.. raw:: latex
- .. code-block:: bash
+ \clearpage
- $ cd tests/kubernetes/perf/container_memif
- $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*ndrdisc" *
+3n-hsw-x710
+~~~~~~~~~~~
-VPP NDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented
-in the graph below.
+64b-1t1c-base_and_scale-l2xc
+----------------------------
.. raw:: html
- <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-container-orchestrated-ndrdisc.html"></iframe>
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
.. raw:: latex
\begin{figure}[H]
\centering
\graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-container-orchestrated-ndrdisc}
- \label{fig:64B-2t2c-container-orchestrated-ndrdisc}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-ndr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-ndr}
\end{figure}
-*Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet
-Switching (base).*
+.. raw:: html
+
+ <center><b>
-CSIT source code for the test cases used for above plots can be found in CSIT
-git repository:
+.. raw:: latex
-.. only:: html
+ \clearpage
- .. program-output:: cd ../../../../../ && set -x && cd tests/kubernetes/perf/container_memif && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*ndrdisc" *
- :shell:
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-pdr`
-.. only:: latex
+.. raw:: html
- .. code-block:: bash
+ </b>
+ <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
- $ cd tests/kubernetes/perf/container_memif
- $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*ndrdisc" *
+.. raw:: latex
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-pdr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2xc-pdr}
+ \end{figure}
-PDR Throughput
-~~~~~~~~~~~~~~
+.. raw:: latex
-VPP PDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented
-in the graph below. PDR measured for 0.5% packet loss ratio.
+ \clearpage
+
+64b-2t2c-base_and_scale-l2xc
+----------------------------
.. raw:: html
- <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-container-orchestrated-pdrdisc.html"></iframe>
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
.. raw:: latex
\begin{figure}[H]
\centering
\graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-container-orchestrated-pdrdisc}
- \label{fig:64B-1t1c-container-orchestrated-pdrdisc}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-ndr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-ndr}
\end{figure}
-*Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy L2 Ethernet
-Switching (base).*
+.. raw:: html
-CSIT source code for the test cases used for above plots can be found in CSIT
-git repository:
+ <center><b>
-.. only:: html
+.. raw:: latex
- .. program-output:: cd ../../../../../ && set -x && cd tests/kubernetes/perf/container_memif && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*pdrdisc" *
- :shell:
+ \clearpage
-.. only:: latex
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-pdr`
- .. code-block:: bash
+.. raw:: html
- $ cd tests/kubernetes/perf/container_memif
- $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*pdrdisc" *
+ </b>
+ <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
-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:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-pdr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2xc-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-1t1c-base_and_scale-l2bd
+----------------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-ndr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-pdr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-1t1c-base_and_scale-l2bd-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-base_and_scale-l2bd
+----------------------------
.. raw:: html
- <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-container-orchestrated-pdrdisc.html"></iframe>
+ <center><b>
+
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
.. raw:: latex
\begin{figure}[H]
\centering
\graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-container-orchestrated-pdrdisc}
- \label{fig:64B-2t2c-container-orchestrated-pdrdisc}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-ndr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-ndr}
\end{figure}
-*Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet
-Switching (base).*
+.. raw:: html
-CSIT source code for the test cases used for above plots can be found in CSIT
-git repository:
+ <center><b>
-.. only:: html
+.. raw:: latex
+
+ \clearpage
- .. program-output:: cd ../../../../../ && set -x && cd tests/kubernetes/perf/container_memif && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*pdrdisc" *
- :shell:
+:index:`Packet Throughput: k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-pdr`
-.. only:: latex
+.. raw:: html
- .. code-block:: bash
+ </b>
+ <iframe id="ifrm16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
- $ cd tests/kubernetes/perf/container_memif
- $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-[1-9]drc(l2xcbase|l2bdbasemaclrn)-.*pdrdisc" *
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-pdr}
+ \label{fig:k8s-memif-3n-hsw-x710-64b-2t2c-base_and_scale-l2bd-pdr}
+ \end{figure}