diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/report/introduction/methodology_hoststack_testing/index.rst | 2 | ||||
-rw-r--r-- | docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst | 2 | ||||
-rw-r--r-- | docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst | 42 | ||||
-rw-r--r-- | docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst | 37 | ||||
-rw-r--r-- | docs/report/vpp_performance_tests/hoststack_testing/index.rst | 3 | ||||
-rw-r--r-- | docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst (renamed from docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst) | 21 | ||||
-rw-r--r-- | docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst | 54 |
7 files changed, 138 insertions, 23 deletions
diff --git a/docs/report/introduction/methodology_hoststack_testing/index.rst b/docs/report/introduction/methodology_hoststack_testing/index.rst index 5feb9cccd2..7750097417 100644 --- a/docs/report/introduction/methodology_hoststack_testing/index.rst +++ b/docs/report/introduction/methodology_hoststack_testing/index.rst @@ -4,4 +4,6 @@ Hoststack Testing .. toctree:: methodology_tcp_with_iperf3 + methodology_udp_with_iperf3 methodology_quic_with_vppecho + methodology_vsap_ab_with_nginx diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst index ce22e34a04..e3fb85d551 100644 --- a/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst +++ b/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst @@ -39,7 +39,7 @@ with the VPP Host Stack configured to utilize the Cubic TCP congestion algorithm. Note: iperf3 is single threaded, so it is expected that the 10 stream -test does not show any performance improvement due to +test shows little or no performance improvement due to multi-thread/multi-core execution. There are also variations of these test cases which use the VPP Network diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst new file mode 100644 index 0000000000..b0525f989f --- /dev/null +++ b/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst @@ -0,0 +1,42 @@ +UDP/IP with iperf3 +^^^^^^^^^^^^^^^^^^ + +`iperf3 goodput measurement tool <https://github.com/esnet/iperf>`_ +is used for measuring the maximum attainable goodput of the VPP Host +Stack connection across two instances of VPP running on separate DUT +nodes. iperf3 is a popular open source tool for active measurements +of the maximum achievable goodput on IP networks. + +Because iperf3 utilizes the POSIX socket interface APIs, the current +test configuration utilizes the LD_PRELOAD mechanism in the linux +kernel to connect iperf3 to the VPP Host Stack using the VPP +Communications Library (VCL) LD_PRELOAD library (libvcl_ldpreload.so). + +In the future, a forked version of iperf3 which has been modified to +directly use the VCL application APIs may be added to determine the +difference in performance of 'VCL Native' applications versus utilizing +LD_PRELOAD which inherently has more overhead and other limitations. + +The test configuration is as follows: + +:: + + DUT1 Network DUT2 + [ iperf3-client -> VPP1 ]=======[ VPP2 -> iperf3-server] + +where, + +1. iperf3 server attaches to VPP2 and LISTENs on VPP2:UDP port 5201. +2. iperf3 client attaches to VPP1 and transmits one or more streams + of packets to VPP2:UDP port 5201. +3. iperf3 client transmits a uni-directional stream as fast as the + VPP Host Stack allows to the iperf3 server for the test duration. +4. At the end of the test the iperf3 client emits the goodput + measurements for all streams and the sum of all streams. + +Test cases include 1 and 10 Streams with a 20 second test duration +with the VPP Host Stack using the UDP transport layer.. + +Note: iperf3 is single threaded, so it is expected that the 10 stream +test shows little or no performance improvement due to +multi-thread/multi-core execution. diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst new file mode 100644 index 0000000000..6acfff1778 --- /dev/null +++ b/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst @@ -0,0 +1,37 @@ +VSAP ab with nginx +^^^^^^^^^^^^^^^^^^ + +`VSAP (VPP Stack Acceleration Project) <https://wiki.fd.io/view/VSAP>`_ +aims to establish an industry user space application ecosystem based on +the VPP hoststack. As a pre-requisite to adapting open source applications +using VPP Communications Library to accelerate performance, the VSAP team +has introduced baseline tests utilizing the LD_PRELOAD mechanism to capture +baseline performance data. + +`AB (Apache HTTP server benchmarking tool) <https://httpd.apache.org/docs/2.4/programs/ab.html>`_ +is used for measuring the maximum connections-per-second and requests-per-second. + +`NGINX <https://www.nginx.com/>`_ is a popular open source HTTP server +application. Because NGINX utilizes the POSIX socket interface APIs, the test +configuration uses the LD_PRELOAD mechanism to connect NGINX to the VPP +Hoststack using the VPP Communications Library (VCL) LD_PRELOAD library +(libvcl_ldpreload.so). + +In the future, a version of NGINX which has been modified to +directly use the VCL application APIs will be added to determine the +difference in performance of 'VCL Native' applications versus utilizing +LD_PRELOAD which inherently has more overhead and other limitations. + +The test configuration is as follows: + +:: + + TG Network DUT + [ AB ]=============[ VPP -> nginx ] + +where, + +1. nginx attaches to VPP and listens on TCP port 80 +2. ab runs CPS and RPS tests with packets flowing from the Test Generator node, + across 100G NICs, through VPP hoststack to NGINX. +3. At the end of the tests, the results are reported by AB. diff --git a/docs/report/vpp_performance_tests/hoststack_testing/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/index.rst index 1b0289531d..3691fb65c3 100644 --- a/docs/report/vpp_performance_tests/hoststack_testing/index.rst +++ b/docs/report/vpp_performance_tests/hoststack_testing/index.rst @@ -3,6 +3,7 @@ Hoststack Testing .. toctree:: - iperf3/index + iperf3/tcp/index + iperf3/udp/index quic/index vsap/index diff --git a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst index 9d1a1bddec..865a5f5ef8 100644 --- a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst +++ b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst @@ -1,4 +1,3 @@ - .. raw:: latex \clearpage @@ -53,23 +52,3 @@ TCP/IP with iperf3 \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3-bps} \label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3-bps} \end{figure} - -.. raw:: latex - - \clearpage - -1460b-2t1c-xxv710-ip4udp-base-scale ------------------------------------ - -.. raw:: html - - <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps.html"></iframe> - -.. raw:: latex - - \begin{figure}[H] - \centering - \graphicspath{{../_build/_static/vpp/}} - \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps} - \label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps} - \end{figure} diff --git a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst new file mode 100644 index 0000000000..605791d18f --- /dev/null +++ b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst @@ -0,0 +1,54 @@ +.. 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> + +UDP/IP with iperf3 +~~~~~~~~~~~~~~~~~~ + +.. todo:: + Add introduction + +.. raw:: latex + + \clearpage + +1460b-2t1c-xxv710-ip4udp-base-scale +----------------------------------- + +.. raw:: html + + <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps.html"></iframe> + +.. raw:: latex + + \begin{figure}[H] + \centering + \graphicspath{{../_build/_static/vpp/}} + \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps} + \label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps} + \end{figure} |