1 .. This work is licensed under a
2 .. Creative Commons Attribution 4.0 International License.
3 .. http://creativecommons.org/licenses/by/4.0
10 ##########################
12 Policy XACML PDP S3P Tests
13 ~~~~~~~~~~~~~~~~~~~~~~~~~~
15 Both the Performance and the Stability tests were executed by performing requests
16 against Policy components installed in Kubernetes environment. These tests were all
17 performed on a Ubuntu VM with 32GB of memory, 16 CPU and 100GB of disk space.
19 Policy XACML PDP Deployment
20 +++++++++++++++++++++++++++
22 In an effort to allow the execution of the s3p tests to be as close to automatic as possible,
23 a script will be executed that will perform the following:
25 - Install of a microk8s kubernetes environment
26 - Bring up the policy components
27 - Checks that the components are successfully up and running before proceeding
29 - Install Jmeter locally and configure it
30 - Specify whether you want to run stability or performance tests
33 The remainder of this document outlines how to run the tests and the test results
37 The common setup for performance and stability tests is now automated - being carried out by a script in- **testsuites/run-s3p-test.sh**.
39 Clone the policy-xacml-pdp repo to access the test scripts
43 git clone https://gerrit.onap.org/r/policy/xacml-pdp xacml-pdp
45 Stability Test of Policy XACML PDP
46 ++++++++++++++++++++++++++++++++++
50 The 24 hours stability test ran the following steps.
52 - Healthcheck, 2 simultaneous threads
53 - Decisions, 2 simultaneous threads, each running the following tasks in sequence:
55 - Monitoring Decision, abbreviated
57 - Optimization Decision
58 - Default Guard Decision (always "Permit")
59 - Frequency Limiter Guard Decision
60 - Min/Max Guard Decision
62 This runs for 24 hours. Test results are present in the **testsuites/automated-performance/s3pTestResults.jtl**
63 file and in **/tmp/** directory. Logs are present for jmeter in **testsuites/automated-performance/jmeter.log** and
64 **testsuites/automated-performance/nohup.out**
69 The code in the setup section also serves to run the tests. Just one execution needed to do it all.
73 bash run-s3p-test.sh run stability
75 Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file.
77 This file can be imported into the Jmeter GUI for visualization. The below results are tabulated from the GUI.
84 Stability test plan was triggered for 24 hours.
88 ======================= ================= ======================== =========================
89 **Total # of requests** **Error %** **Average Latency (ms)** **Measured requests/sec**
90 ======================= ================= ======================== =========================
91 63618103 0.00 % 5 ms 736.064 ms
92 ======================= ================= ======================== =========================
96 .. image:: xacml-s3p-results/s3p-stability-xacml.png
98 **Policy component Setup**
100 ============================================== ==================================================================== ===========================================
101 **NAME** **IMAGE** **PORT**
102 ============================================== ==================================================================== ===========================================
103 mariadb-galera-0 docker.io/bitnami/mariadb-galera:10.5.8 3306/TCP
104 policy-models-simulator-bcd494d87-cldfr nexus3.onap.org:10001/onap/policy-models-simulator:3.0.2-SNAPSHOT 30904/TCP
105 policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.0.2-SNAPSHOT 30001/TCP
106 prometheus-f66f97b6-kpg5c nexus3.onap.org:10001/prom/prometheus:latest 30909/TCP
107 policy-distribution-86777bdd78-95zjx nexus3.onap.org:10001/onap/policy-distribution:3.0.2-SNAPSHOT 30006/TCP
108 policy-clamp-ac-http-ppnt-7b99cbfbf8-d5zjk nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:7.0.3-SNAPSHOT
109 policy-clamp-ac-pf-ppnt-55c4cb99f4-pp699 nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:7.0.3-SNAPSHOT 30008/TCP
110 policy-clamp-ac-k8s-ppnt-6d854cc8b6-nzlgh nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:7.0.3-SNAPSHOT
111 policy-clamp-runtime-acm-5c6d8fbfb-zww5j nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:7.0.3-SNAPSHOT 30007/TCP
112 policy-pap-847d89997d-gljzh nexus3.onap.org:10001/onap/policy-pap:3.0.2-SNAPSHOT 30003/TCP
113 policy-xacml-pdp-656d57d578-9h6fx nexus3.onap.org:10001/onap/policy-xacml-pdp:3.0.2-SNAPSHOT 30004/TCP
114 policy-api-58cb45fc9b-9qcx6 nexus3.onap.org:10001/onap/policy-api:3.0.2-SNAPSHOT 30002/tcp
115 ============================================== ==================================================================== ===========================================
119 .. container:: paragraph
121 There were no failures during the 24 hours test.
123 The XACML PDP offered very good performance with JMeter for the traffic mix described above.
124 The average transaction time is insignificant.
127 Performance Test of Policy XACML PDP
128 ++++++++++++++++++++++++++++++++++++
133 Performance test of acm components has the goal of testing the min/avg/max processing time and rest call throughput for all the requests with multiple requests at the same time.
138 We can setup the environment and execute the tests like this from the **xacml-pdp/testsuites** directory
143 Performance test plan is the same as the stability test plan above except for the few differences listed below.
145 - Increase the number of threads up to 10 (simulating 10 users' behaviours at the same time).
146 - Reduce the test time to 20 minutes.
148 The performance tests runs the following, all in parallel:
150 - Healthcheck, 10 simultaneous threads
151 - Decisions, 10 simultaneous threads, each running the following in sequence:
153 - Monitoring Decision
154 - Monitoring Decision, abbreviated
156 - Optimization Decision
157 - Default Guard Decision (always "Permit")
158 - Frequency Limiter Guard Decision
159 - Min/Max Guard Decision
161 When the script starts up, it uses policy-api to create, and policy-pap to deploy
162 the policies that are needed by the test. It assumes that the "naming" policy has
163 already been created and deployed. Once the test completes, it undeploys and deletes
164 the policies that it previously created.
169 The code in the setup section also serves to run the tests. Just one execution needed to do it all.
173 bash run-s3p-test.sh run performance
175 Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file and in **/tmp/** directory.
177 This file can be imported into the Jmeter GUI for visualization. The below results are tabulated from the GUI.
184 The test was run for 20 minutes with 10 users (i.e., threads), with the following results:
188 ======================= ================= ======================== =========================
189 **Total # of requests** **Error %** **Average Latency (ms)** **Measured requests/sec**
190 ======================= ================= ======================== =========================
191 912141 0.00 % 25.5666 ms 741.917 ms
192 ======================= ================= ======================== =========================
194 .. image:: xacml-s3p-results/s3p-perf-xacml.png