Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 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 | |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 10 | ########################## |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 11 | |
mkidd | da3bfe2 | 2021-03-30 16:43:55 +0100 | [diff] [blame^] | 12 | Performance Test of Policy XACML PDP |
| 13 | ************************************ |
| 14 | |
| 15 | The Performance test was executed by performing requests |
| 16 | against the Policy RESTful APIs residing on the XACML PDP installed on a Cloud based Virtual Machine. |
| 17 | |
| 18 | VM Configuration: |
| 19 | - 16GB RAM |
| 20 | - 8 VCPU |
| 21 | - 1TB Disk |
| 22 | |
| 23 | ONAP was deployed using a K8s Configuration on a separate VM. |
| 24 | |
| 25 | Summary |
| 26 | ======= |
| 27 | |
| 28 | The 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 | |
| 37 | Note: the ports listed above correspond to port 6969 of the respective components. |
| 38 | |
| 39 | The 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 | |
| 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. |
| 57 | |
| 58 | Results |
| 59 | ======= |
| 60 | |
| 61 | The test was run for 20 minutes at a time, for different numbers of users (i.e., |
| 62 | threads), 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 | |
| 73 | Stability Test of Policy XACML PDP |
| 74 | ************************************ |
| 75 | |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 76 | The stability test was executed by performing requests |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 77 | against the Policy RESTful APIs residing on the XACML PDP installed in the windriver |
| 78 | lab. This was running on a kubernetes pod having the following configuration: |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 79 | |
| 80 | - 16GB RAM |
| 81 | - 8 VCPU |
| 82 | - 160GB Disk |
| 83 | |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 84 | The test was run via jmeter, which was installed on a separate VM so-as not |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 85 | to impact the performance of the XACML-PDP being tested. |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 86 | |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 87 | Summary |
| 88 | ======= |
| 89 | |
jhh | ab948fc | 2020-10-23 17:30:34 -0500 | [diff] [blame] | 90 | The stability test was performed on a default ONAP OOM installation in the Intel Wind River Lab environment. |
| 91 | JMeter 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>`_ |
| 94 | with the following command: |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 95 | |
| 96 | .. code-block:: bash |
| 97 | |
jhh | ab948fc | 2020-10-23 17:30:34 -0500 | [diff] [blame] | 98 | 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 Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 100 | |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 101 | Note: the ports listed above correspond to port 6969 of the respective components. |
| 102 | |
jhh | ab948fc | 2020-10-23 17:30:34 -0500 | [diff] [blame] | 103 | The default log level of the root and org.eclipse.jetty.server.RequestLog loggers in the logback.xml |
| 104 | of the XACML PDP |
| 105 | (om/kubernetes/policy/components/policy-xacml-pdp/resources/config/logback.xml) |
| 106 | was set to ERROR since the OOM installation did not have log rotation enabled of the |
| 107 | container logs in the kubernetes worker nodes. |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 108 | |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 109 | The 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 | |
| 122 | When the script starts up, it uses policy-api to create, and policy-pap to deploy |
| 123 | the policies that are needed by the test. It assumes that the "naming" policy has |
| 124 | already been created and deployed. Once the test completes, it undeploys and deletes |
| 125 | the policies that it previously created. |
| 126 | |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 127 | Results |
| 128 | ======= |
| 129 | |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 130 | The stability summary results were reported by JMeter with the following summary line: |
Jim Hahn | 8f35a81 | 2020-05-05 13:08:13 -0400 | [diff] [blame] | 131 | |
| 132 | .. code-block:: bash |
| 133 | |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 134 | summary = 207771010 in 72:00:01 = 801.6/s Avg: 6 Min: 0 Max: 411 Err: 0 (0.00%) |
jhh | ab948fc | 2020-10-23 17:30:34 -0500 | [diff] [blame] | 135 | |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 136 | The XACML PDP offered good performance with JMeter for the traffic mix described above, using 801 threads per second |
jhh | ab948fc | 2020-10-23 17:30:34 -0500 | [diff] [blame] | 137 | to inject the traffic load. No errors were encountered, and no significant CPU spikes were noted. |
jhh | 5452520 | 2021-03-29 15:30:29 -0500 | [diff] [blame] | 138 | The average transaction time was 6ms. with a maximum of 411ms. |
jhh | ab948fc | 2020-10-23 17:30:34 -0500 | [diff] [blame] | 139 | |