document guilin xacml stability run results
[policy/parent.git] / docs / development / devtools / xacml-s3p.rst
1 .. 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
10 Policy XACML PDP component
11 ##########################
12
13 Both the Performance and the Stability tests were executed by performing requests
14 against the Policy RESTful APIs residing on the XACML PDP installed in the windriver
15 lab.  This was running on a kubernetes pod having the following configuration:
16
17 - 16GB RAM
18 - 8 VCPU
19 - 160GB Disk
20
21 Both tests were run via jmeter, which was installed on a separate VM so-as not
22 to impact the performance of the XACML-PDP being tested.
23
24 Performance Test of Policy XACML PDP
25 ************************************
26
27 Summary
28 =======
29
30 The Performance test was executed, and the result analyzed, via:
31
32 .. code-block:: bash
33
34     jmeter -Jduration=1200 -Jusers=10 \
35         -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
36         -Jxacml_port=31104 -Jpap_port=32425 -Japi_port=30709 \
37         -n -t perf.jmx
38
39     ./result.sh
40
41 Note: the ports listed above correspond to port 6969 of the respective components.
42
43 The performance test, perf.jmx, runs the following, all in parallel:
44
45 - Healthcheck, 10 simultaneous threads
46 - Statistics, 10 simultaneous threads
47 - Decisions, 10 simultaneous threads, each running the following in sequence:
48
49    - Monitoring Decision
50    - Monitoring Decision, abbreviated
51    - Naming Decision
52    - Optimization Decision
53    - Default Guard Decision (always "Permit")
54    - Frequency Limiter Guard Decision
55    - Min/Max Guard Decision
56
57 When the script starts up, it uses policy-api to create, and policy-pap to deploy,
58 the policies that are needed by the test.  It assumes that the "naming" policy has
59 already been created and deployed.  Once the test completes, it undeploys and deletes
60 the policies that it previously created.
61
62 Results
63 =======
64
65 The test was run for 20 minutes at a time, for different numbers of users (i.e.,
66 threads), with the following results:
67
68 .. csv-table::
69    :header: "Number of Users", "Throughput (requests/second)", "Average Latency (ms)"
70
71    10, 6064, 4.1
72    20, 6495, 7.2
73    40, 6457, 12.2
74    80, 5803, 21.3
75
76
77 Stability Test of Policy XACML PDP
78 ************************************
79
80 Summary
81 =======
82
83 The stability test was performed on a default ONAP OOM installation in the Intel Wind River Lab environment.
84 JMeter was installed on a separate VM to inject the traffic defined in the
85 `XACML PDP stability script
86 <https://git.onap.org/policy/xacml-pdp/tree/testsuites/stability/src/main/resources/testplans/stability.jmx>`_
87 with the following command:
88
89 .. code-block:: bash
90
91     jmeter.sh -Jduration=259200 -Jusers=2 -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
92         -Jxacml_port=31104 -Jpap_port=32425 -Japi_port=30709 --nongui --testfile stability.jmx
93
94 The default log level of the root and org.eclipse.jetty.server.RequestLog loggers in the logback.xml
95 of the XACML PDP
96 (om/kubernetes/policy/components/policy-xacml-pdp/resources/config/logback.xml)
97 was set to ERROR since the OOM installation did not have log rotation enabled of the
98 container logs in the kubernetes worker nodes.
99
100 Results
101 =======
102
103 The stability summary results were reported by JMeter with the following line:
104
105 .. code-block:: bash
106
107     2020-10-23 19:44:31,515 INFO o.a.j.r.Summariser: summary = 1061746369 in 72:00:16 = 4096.0/s Avg:     0 Min:     0 Max:  2584 Err:     0 (0.00%)
108
109 The XACML PDP offered good performance with JMeter for the traffic mix described above, creating 4096 threads per second
110 to inject the traffic load.   No errors were encountered, and no significant CPU spikes were noted.
111