diff options
Diffstat (limited to 'docs/development/devtools')
13 files changed, 62 insertions, 32 deletions
diff --git a/docs/development/devtools/api-s3p.rst b/docs/development/devtools/api-s3p.rst index 439719be..55867b44 100644 --- a/docs/development/devtools/api-s3p.rst +++ b/docs/development/devtools/api-s3p.rst @@ -135,14 +135,54 @@ average a 10 seconds plus response time. Performance Test of Policy API ++++++++++++++++++++++++++++++ -A specific performance test was omitted in Honululu (as in Guilin). The JMeter script used in the stability run injected -back to back traffic with 5 parallel threads with no pauses between requests. Since the JMeter threads operate -in synchronous mode (waiting for a request's response before sending the next request), JMeter injection rates autoregulate -because of the backpressure imposed by the response times. Even though the response times are high, the -"Response over Time" graph above indicates that they remain constant at large, throughout the duration of the test. -This together with the absence of notorious spikes in the kubernetes node CPU utilization suggests that the API -component is not strained. A more enlightning set of tests, would plot jmeter threads (increasing load) -against response times. These tests have not been performed in this release. +Introduction +------------ + +Performance test of policy-api has the goal of testing the min/avg/max processing time and rest call throughput for all the requests when the number of requests are large enough to saturate the resource and find the bottleneck. + +Setup Details +------------- + +The performance test was performed on a default ONAP OOM installation in the Intel Wind River Lab environment. +JMeter was installed on a separate VM to inject the traffic defined in the +`API performace script +<https://git.onap.org/policy/api/tree/testsuites/performance/src/main/resources/testplans/policy_api_performance.jmx>`_ +with the following command: + +.. code-block:: bash + + jmeter.sh --nongui --testfile policy_api_performance.jmx --logfile result.jtl + + +Test Plan +--------- + +Performance test plan is the same as stability test plan above. +Only differences are, in performance test, we increase the number of threads up to 20 (simulating 20 users' behaviors at the same time) whereas reducing the test time down to 2.5 hours. + +Run Test +-------- + +Running/Triggering performance test will be the same as stability test. That is, launch JMeter pointing to corresponding *.jmx* test plan. The *API_HOST* and *API_PORT* are already set up in *.jmx*. + +**Test Statistics** + +======================= ============= =========== =============================== =============================== =============================== +**Total # of requests** **Success %** **TPS** **Avg. time taken per request** **Min. time taken per request** **Max. time taken per request** +======================= ============= =========== =============================== =============================== =============================== + 4082 100% 0.45 1297 ms 4 ms 63612 ms +======================= ============= =========== =============================== =============================== =============================== + +.. image:: images/api-s3p-jm-2_H.png + +Test Results +------------ + +The following graphs show the response time distributions. + +.. image:: images/api-response-time-distribution_performance_H.png +.. image:: images/api-response-time-overtime_performance_H.png + diff --git a/docs/development/devtools/distribution-s3p.rst b/docs/development/devtools/distribution-s3p.rst index 1db411c6..13c47924 100644 --- a/docs/development/devtools/distribution-s3p.rst +++ b/docs/development/devtools/distribution-s3p.rst @@ -121,7 +121,7 @@ Run the setup_components.sh script to start the test support components: .. code-block:: bash - ~/distribution/testsuites/stability/src/main/resources/distributionsetup/setup_distribution.sh + ~/distribution/testsuites/stability/src/main/resources/simulatorsetup/setup_components.sh After installation, ensure the following docker containers are up and running: @@ -182,7 +182,7 @@ Download and install JMeter VM2 Only: Install & configure visualVM -------------------------------------- -VisualVM needs to be installed in the virtual machine running Distrbution (VM2). It will be used to monitor CPU, Memory and GC for Distribution while the stability tests are running. +VisualVM needs to be installed in the virtual machine running Distribution (VM2). It will be used to monitor CPU, Memory and GC for Distribution while the stability tests are running. .. code-block:: bash @@ -222,7 +222,7 @@ This will load up the visualVM GUI Connect to Distribution JMX Port. 1. Right click on "Local" in the left panel of the screen and select "Add JMX Connection" - 2. Enter the Port 9090. this is the JMX port exposed by the dsitribution container + 2. Enter the Port 9090. this is the JMX port exposed by the distribution container 3. Double click on the newly added nodes under "Local" to start monitoring CPU, Memory & GC. Example Screenshot of visualVM @@ -236,9 +236,9 @@ Stability Test of Policy Distribution Introduction ------------ -The 72 hour Stability Test for policy distribution has the goal of introducing a steady flow of transactions initiated from a test client server running JMeter. The policy distribution is configured with a special FileSystemReception plugin to monitor a local directory for newly added csar files to be processed by itself. The input CSAR will be added/removed by the test client(JMeter) and the result will be pulled from the backend(PAP and PolicyAPI) by the test client (JMeter). +The 72 hour Stability Test for policy distribution has the goal of introducing a steady flow of transactions initiated from a test client server running JMeter. The policy distribution is configured with a special FileSystemReception plugin to monitor a local directory for newly added csar files to be processed by itself. The input CSAR will be added/removed by the test client(JMeter) and the result will be pulled from the backend (PAP and PolicyAPI) by the test client (JMeter). -The test will be performed in an environment where Jmeter will continuously add/remove a test csar into the special directory where policy distribuion is monitoring and will then get the processed results from PAP and PolicyAPI to verify the successful deployment of the policy. The policy will then be undeployed and the test will loop continuously until 72 hours have elapsed. +The test will be performed in an environment where Jmeter will continuously add/remove a test csar into the special directory where policy distribution is monitoring and will then get the processed results from PAP and PolicyAPI to verify the successful deployment of the policy. The policy will then be undeployed and the test will loop continuously until 72 hours have elapsed. Test Plan Sequence @@ -291,7 +291,7 @@ From the apache JMeter folder run the test for 72h, pointing it towards the stab .. code-block:: bash - ~/jmeter/apache-jmeter-5.1.1/bin/jmeter -n -t ~/distribution/testsuites/stability/src/main/resources/testplans/stability.jmx -Jduration=259200 -l ~/20201016-1715-distr-stability.jtl & + ~/jmeter/apache-jmeter-5.1.1/bin/jmeter -n -t ~/distribution/testsuites/stability/src/main/resources/testplans/stability.jmx -Jduration=259200 -l ~/distr-stability.jtl & Test Results @@ -304,18 +304,13 @@ Test Results **Test Statistics** -.. csv-table:: Stability Results - Summary Report - :file: csv/20201016-1715-distr-stability-summary.csv - :header-rows: 1 - -.. csv-table:: Stability Results - Aggregate Report - :file: csv/20201016-1715-distr-stability-aggregate.csv - :header-rows: 1 +.. image:: images/dist_stability_statistics.PNG +.. image:: images/dist_stability_threshold.PNG **VisualVM Screenshots** -.. image:: images/20201016-1715-distr-stability-20201018T2040-monitor.png -.. image:: images/20201016-1715-distr-stability-20201018T2040-threads.png +.. image:: images/dist_stability_monitor.PNG +.. image:: images/dist_stability_threads.PNG Performance Test of Policy Distribution @@ -342,7 +337,7 @@ Performance test plan is different from the stability test plan. - Instead of handling one policy csar at a time, multiple csar's are deployed within the watched folder at the exact same time. - We expect all policies from these csar's to be deployed within 30 seconds. -- There are also multithreaded tests running towards the healtchcheck and statistics endpoints of the distribution service. +- There are also multithreaded tests running towards the healthcheck and statistics endpoints of the distribution service. Running the Test Plan @@ -359,7 +354,7 @@ From the apache JMeter folder run the test for 4h, pointing it towards the perfo .. code-block:: bash - ~/jmeter/apache-jmeter-5.1.1/bin/jmeter -n -t ~/distribution/testsuites/performance/src/main/resources/testplans/performance.jmx -Jduration=14400 -l ~/20201020-1730-distr-performance.jtl & + ~/jmeter/apache-jmeter-5.1.1/bin/jmeter -n -t ~/distribution/testsuites/performance/src/main/resources/testplans/performance.jmx -Jduration=14400 -l ~/distr-performance.jtl & Test Results ------------ @@ -371,13 +366,8 @@ Test Results **Test Statistics** -.. csv-table:: Performance Results - Summary Report - :file: csv/20201020-1730-distr-performance-summary.csv - :header-rows: 1 - -.. csv-table:: Performance Results - Aggregate Report - :file: csv/20201020-1730-distr-performance-aggregate.csv - :header-rows: 1 +.. image:: images/dist_perf_statistics.PNG +.. image:: images/dist_perf_threshold.PNG **VisualVM Screenshots** diff --git a/docs/development/devtools/images/20201016-1715-distr-stability-20201018T2040-monitor.png b/docs/development/devtools/images/20201016-1715-distr-stability-20201018T2040-monitor.png Binary files differdeleted file mode 100755 index abdba921..00000000 --- a/docs/development/devtools/images/20201016-1715-distr-stability-20201018T2040-monitor.png +++ /dev/null diff --git a/docs/development/devtools/images/20201016-1715-distr-stability-20201018T2040-threads.png b/docs/development/devtools/images/20201016-1715-distr-stability-20201018T2040-threads.png Binary files differdeleted file mode 100755 index 2a9745ae..00000000 --- a/docs/development/devtools/images/20201016-1715-distr-stability-20201018T2040-threads.png +++ /dev/null diff --git a/docs/development/devtools/images/api-response-time-distribution_performance_H.png b/docs/development/devtools/images/api-response-time-distribution_performance_H.png Binary files differnew file mode 100644 index 00000000..68a5c79e --- /dev/null +++ b/docs/development/devtools/images/api-response-time-distribution_performance_H.png diff --git a/docs/development/devtools/images/api-response-time-overtime_performance_H.png b/docs/development/devtools/images/api-response-time-overtime_performance_H.png Binary files differnew file mode 100644 index 00000000..63fc859a --- /dev/null +++ b/docs/development/devtools/images/api-response-time-overtime_performance_H.png diff --git a/docs/development/devtools/images/api-s3p-jm-2_H.png b/docs/development/devtools/images/api-s3p-jm-2_H.png Binary files differnew file mode 100644 index 00000000..da9d1e92 --- /dev/null +++ b/docs/development/devtools/images/api-s3p-jm-2_H.png diff --git a/docs/development/devtools/images/dist_perf_statistics.PNG b/docs/development/devtools/images/dist_perf_statistics.PNG Binary files differnew file mode 100644 index 00000000..eeefeeee --- /dev/null +++ b/docs/development/devtools/images/dist_perf_statistics.PNG diff --git a/docs/development/devtools/images/dist_perf_threshold.PNG b/docs/development/devtools/images/dist_perf_threshold.PNG Binary files differnew file mode 100644 index 00000000..58fbffd1 --- /dev/null +++ b/docs/development/devtools/images/dist_perf_threshold.PNG diff --git a/docs/development/devtools/images/dist_stability_monitor.PNG b/docs/development/devtools/images/dist_stability_monitor.PNG Binary files differnew file mode 100644 index 00000000..83eae8cc --- /dev/null +++ b/docs/development/devtools/images/dist_stability_monitor.PNG diff --git a/docs/development/devtools/images/dist_stability_statistics.PNG b/docs/development/devtools/images/dist_stability_statistics.PNG Binary files differnew file mode 100644 index 00000000..dce9b7cc --- /dev/null +++ b/docs/development/devtools/images/dist_stability_statistics.PNG diff --git a/docs/development/devtools/images/dist_stability_threads.PNG b/docs/development/devtools/images/dist_stability_threads.PNG Binary files differnew file mode 100644 index 00000000..13e27c99 --- /dev/null +++ b/docs/development/devtools/images/dist_stability_threads.PNG diff --git a/docs/development/devtools/images/dist_stability_threshold.PNG b/docs/development/devtools/images/dist_stability_threshold.PNG Binary files differnew file mode 100644 index 00000000..d65e8cc3 --- /dev/null +++ b/docs/development/devtools/images/dist_stability_threshold.PNG |