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 Performance Test of Policy XACML PDP
13 ************************************
15 The Performance test was executed by performing requests
16 against the Policy RESTful APIs.
18 A default ONAP installation in the Policy tenant in UNH was used to run the tests.
20 The Agent VMs in this lab have the following configuration:
28 The Performance test was executed, and the result analysed, via:
32 jmeter -Jduration=1200 -Jusers=10 \
33 -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
34 -Jxacml_port=30111 -Jpap_port=30197 -Japi_port=30664 \
35 -n -t perf.jmx -l testresults.jtl
37 Note: the ports listed above correspond to port 6969 of the respective components.
39 The performance tests runs the following, all in parallel:
41 - Healthcheck, 10 simultaneous threads
42 - Statistics, 10 simultaneous threads
43 - Decisions, 10 simultaneous threads, each running the following in sequence:
46 - Monitoring Decision, abbreviated
48 - Optimization Decision
49 - Default Guard Decision (always "Permit")
50 - Frequency Limiter Guard Decision
51 - Min/Max Guard Decision
53 When the script starts up, it uses policy-api to create, and policy-pap to deploy,
54 the policies that are needed by the test. It assumes that the "naming" policy has
55 already been created and deployed. Once the test completes, it undeploys and deletes
56 the policies that it previously created.
61 The test was run for 20 minutes with 10 users (i.e., threads), with the following results:
64 :header: "Number of Users", "Throughput (requests/second)", "Average Latency (ms)"
68 .. image:: images/s3p-perf-xacml.png
71 Stability Test of Policy XACML PDP
72 ************************************
74 The stability test were executed in the same lab. The test was run via jmeter.
79 The stability test was performed on a default ONAP OOM installation in the Policy tenant of the UNH lab.
80 JMeter injected the traffic defined in the
81 `XACML PDP stability script
82 <https://git.onap.org/policy/xacml-pdp/tree/testsuites/stability/src/main/resources/testplans/stability.jmx>`_
83 with the following command:
87 jmeter.sh -Jduration=259200 -Jusers=2 -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
88 -Jxacml_port=30111 -Jpap_port=30197 -Japi_port=30664 --nongui --testfile stability.jmx
90 Note: the ports listed above correspond to port 6969 of the respective components.
92 The default log level of the root and org.eclipse.jetty.server.RequestLog loggers in the logback.xml
94 (om/kubernetes/policy/components/policy-xacml-pdp/resources/config/logback.xml)
95 was set to WARN since the OOM installation did have log rotation enabled of the
96 container logs in the kubernetes worker nodes.
98 The stability test, stability.jmx, runs the following, all in parallel:
100 - Healthcheck, 2 simultaneous threads
101 - Statistics, 2 simultaneous threads
102 - Decisions, 2 simultaneous threads, each running the following tasks in sequence:
103 - Monitoring Decision
104 - Monitoring Decision, abbreviated
106 - Optimization Decision
107 - Default Guard Decision (always "Permit")
108 - Frequency Limiter Guard Decision
109 - Min/Max Guard Decision
111 When the script starts up, it uses policy-api to create, and policy-pap to deploy
112 the policies that are needed by the test. It assumes that the "naming" policy has
113 already been created and deployed. Once the test completes, it undeploys and deletes
114 the policies that it previously created.
119 The stability summary results were reported by JMeter with the following summary line:
123 summary = 997436933 in 71:59:45 = 3848.4/s Avg: 0 Min: 0 Max: 1480 Err: 0 (0.00%)
125 The XACML PDP offered very good performance with JMeter for the traffic mix described above, using 3848 threads per second
126 to inject the traffic load. The average transaction time is insignificant. The maximum transaction time of 1480ms.
127 occured in the beginning of the run while the JVM was warming up.