blob: 1411f90b6ac491602da3259949653ebf85fc8f44 [file] [log] [blame]
Pamela Dragoshba45dc62020-04-16 09:27:44 -04001.. This work is licensed under a
2.. Creative Commons Attribution 4.0 International License.
3.. http://creativecommons.org/licenses/by/4.0
4
5.. _xacml-s3p-label:
6
7.. toctree::
8 :maxdepth: 2
9
Jim Hahn8f35a812020-05-05 13:08:13 -040010##########################
Pamela Dragoshba45dc62020-04-16 09:27:44 -040011
mkiddda3bfe22021-03-30 16:43:55 +010012Performance Test of Policy XACML PDP
13************************************
14
15The Performance test was executed by performing requests
16against the Policy RESTful APIs residing on the XACML PDP installed on a Cloud based Virtual Machine.
17
18VM Configuration:
19- 16GB RAM
20- 8 VCPU
21- 1TB Disk
22
23ONAP was deployed using a K8s Configuration on a separate VM.
24
25Summary
26=======
27
28The Performance test was executed, and the result analyzed, via:
29
30.. code-block:: bash
31
32 jmeter -Jduration=1200 -Jusers=10 \
33 -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
34 -Jxacml_port=31104 -Jpap_port=32425 -Japi_port=30709 \
35 -n -t perf.jmx -l testresults.jtl
36
37Note: the ports listed above correspond to port 6969 of the respective components.
38
39The performance test, perf.jmx, runs the following, all in parallel:
40
41- Healthcheck, 10 simultaneous threads
42- Statistics, 10 simultaneous threads
43- Decisions, 10 simultaneous threads, each running the following in sequence:
44
45 - Monitoring Decision
46 - Monitoring Decision, abbreviated
47 - Naming Decision
48 - Optimization Decision
49 - Default Guard Decision (always "Permit")
50 - Frequency Limiter Guard Decision
51 - Min/Max Guard Decision
52
53When the script starts up, it uses policy-api to create, and policy-pap to deploy,
54the policies that are needed by the test. It assumes that the "naming" policy has
55already been created and deployed. Once the test completes, it undeploys and deletes
56the policies that it previously created.
57
58Results
59=======
60
61The test was run for 20 minutes at a time, for different numbers of users (i.e.,
62threads), with the following results:
63
64.. csv-table::
65 :header: "Number of Users", "Throughput (requests/second)", "Average Latency (ms)"
66
67 10, 8929, 3.10
68 20, 10827, 5.05
69 40, 11800, 9.35
70 80, 11750, 18.62
71
72
73Stability Test of Policy XACML PDP
74************************************
75
jhh54525202021-03-29 15:30:29 -050076The stability test was executed by performing requests
Jim Hahn8f35a812020-05-05 13:08:13 -040077against the Policy RESTful APIs residing on the XACML PDP installed in the windriver
78lab. This was running on a kubernetes pod having the following configuration:
Pamela Dragoshba45dc62020-04-16 09:27:44 -040079
80- 16GB RAM
81- 8 VCPU
82- 160GB Disk
83
jhh54525202021-03-29 15:30:29 -050084The test was run via jmeter, which was installed on a separate VM so-as not
Jim Hahn8f35a812020-05-05 13:08:13 -040085to impact the performance of the XACML-PDP being tested.
Pamela Dragoshba45dc62020-04-16 09:27:44 -040086
Jim Hahn8f35a812020-05-05 13:08:13 -040087Summary
88=======
89
jhhab948fc2020-10-23 17:30:34 -050090The stability test was performed on a default ONAP OOM installation in the Intel Wind River Lab environment.
91JMeter was installed on a separate VM to inject the traffic defined in the
92`XACML PDP stability script
93<https://git.onap.org/policy/xacml-pdp/tree/testsuites/stability/src/main/resources/testplans/stability.jmx>`_
94with the following command:
Jim Hahn8f35a812020-05-05 13:08:13 -040095
96.. code-block:: bash
97
jhhab948fc2020-10-23 17:30:34 -050098 jmeter.sh -Jduration=259200 -Jusers=2 -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
99 -Jxacml_port=31104 -Jpap_port=32425 -Japi_port=30709 --nongui --testfile stability.jmx
Jim Hahn8f35a812020-05-05 13:08:13 -0400100
jhh54525202021-03-29 15:30:29 -0500101Note: the ports listed above correspond to port 6969 of the respective components.
102
jhhab948fc2020-10-23 17:30:34 -0500103The default log level of the root and org.eclipse.jetty.server.RequestLog loggers in the logback.xml
104of the XACML PDP
105(om/kubernetes/policy/components/policy-xacml-pdp/resources/config/logback.xml)
106was set to ERROR since the OOM installation did not have log rotation enabled of the
107container logs in the kubernetes worker nodes.
Jim Hahn8f35a812020-05-05 13:08:13 -0400108
jhh54525202021-03-29 15:30:29 -0500109The stability test, stability.jmx, runs the following, all in parallel:
110
111- Healthcheck, 2 simultaneous threads
112- Statistics, 2 simultaneous threads
113- Decisions, 2 simultaneous threads, each running the following tasks in sequence:
114 - Monitoring Decision
115 - Monitoring Decision, abbreviated
116 - Naming Decision
117 - Optimization Decision
118 - Default Guard Decision (always "Permit")
119 - Frequency Limiter Guard Decision
120 - Min/Max Guard Decision
121
122When the script starts up, it uses policy-api to create, and policy-pap to deploy
123the policies that are needed by the test. It assumes that the "naming" policy has
124already been created and deployed. Once the test completes, it undeploys and deletes
125the policies that it previously created.
126
Jim Hahn8f35a812020-05-05 13:08:13 -0400127Results
128=======
129
jhh54525202021-03-29 15:30:29 -0500130The stability summary results were reported by JMeter with the following summary line:
Jim Hahn8f35a812020-05-05 13:08:13 -0400131
132.. code-block:: bash
133
jhh54525202021-03-29 15:30:29 -0500134 summary = 207771010 in 72:00:01 = 801.6/s Avg: 6 Min: 0 Max: 411 Err: 0 (0.00%)
jhhab948fc2020-10-23 17:30:34 -0500135
jhh54525202021-03-29 15:30:29 -0500136The XACML PDP offered good performance with JMeter for the traffic mix described above, using 801 threads per second
jhhab948fc2020-10-23 17:30:34 -0500137to inject the traffic load. No errors were encountered, and no significant CPU spikes were noted.
jhh54525202021-03-29 15:30:29 -0500138The average transaction time was 6ms. with a maximum of 411ms.
jhhab948fc2020-10-23 17:30:34 -0500139