blob: 58c522f68e7f9b70f5a42367f9b5a069cf775ce2 [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.. _drools-s3p-label:
6
7.. toctree::
8 :maxdepth: 2
9
10Policy Drools PDP component
11~~~~~~~~~~~~~~~~~~~~~~~~~~~
12
jhh794fa0b2020-05-18 23:23:58 -050013Both the Performance and the Stability tests were executed against a default ONAP installation in the PFPP tenant, from an independent VM running the jmeter tool to inject the load.
14
15General Setup
16*************
17
jhh2e1562f2020-05-19 14:37:51 -050018The kubernetes installation allocated all policy components in the same worker node VM and some additional ones.
19The worker VM hosting the policy components has the following spec:
jhh794fa0b2020-05-18 23:23:58 -050020
jhh2e1562f2020-05-19 14:37:51 -050021- 16GB RAM
jhh794fa0b2020-05-18 23:23:58 -050022- 8 VCPU
23- 160GB Ephemeral Disk
24
jhh2e1562f2020-05-19 14:37:51 -050025The standalone VM designated to run jmeter has the same configuration. The jmeter JVM
26was instantiated with a max heap configuration of 12G.
jhh794fa0b2020-05-18 23:23:58 -050027
jhh2e1562f2020-05-19 14:37:51 -050028Other ONAP components used during the stability tests are:
jhh794fa0b2020-05-18 23:23:58 -050029
30- Policy XACML PDP to process guard queries for each transaction.
31- DMaaP to carry PDP-D and jmeter initiated traffic to complete transactions.
32- Policy API to create (and delete at the end of the tests) policies for each
33 scenario under test.
34- Policy PAP to deploy (and undeploy at the end of the tests) policies for each scenario under test.
35
36The following components are simulated during the tests.
37
38- SO actor for the vDNS use case.
39- APPC responses for the vCPE and vFW use cases.
jhh2e1562f2020-05-19 14:37:51 -050040- AAI to answer queries for the use cases under test.
jhh794fa0b2020-05-18 23:23:58 -050041
jhh2e1562f2020-05-19 14:37:51 -050042In order to avoid interferences with the APPC component while running the tests,
jhh794fa0b2020-05-18 23:23:58 -050043the APPC component was disabled.
44
jhh2e1562f2020-05-19 14:37:51 -050045SO, and AAI actors were simulated within the PDP-D JVM by enabling the
46feature-controlloop-utils before running the tests.
jhh794fa0b2020-05-18 23:23:58 -050047
48PDP-D Setup
49***********
50
51The kubernetes charts were modified previous to the installation with
52the changes below.
53
54The oom/kubernetes/policy/charts/drools/resources/configmaps/base.conf was
jhh2e1562f2020-05-19 14:37:51 -050055modified as follows:
jhh794fa0b2020-05-18 23:23:58 -050056
57.. code-block:: bash
58
59 --- a/kubernetes/policy/charts/drools/resources/configmaps/base.conf
60 +++ b/kubernetes/policy/charts/drools/resources/configmaps/base.conf
61 @@ -85,27 +85,27 @@ DMAAP_SERVERS=message-router
62
63 # AAI
64
65 -AAI_HOST=aai.{{.Release.Namespace}}
66 -AAI_PORT=8443
67 +AAI_HOST=localhost
68 +AAI_PORT=6666
69 AAI_CONTEXT_URI=
70
71 # MSO
72
73 -SO_HOST=so.{{.Release.Namespace}}
74 -SO_PORT=8080
75 -SO_CONTEXT_URI=onap/so/infra/
76 -SO_URL=https://so.{{.Release.Namespace}}:8080/onap/so/infra
77 +SO_HOST=localhost
78 +SO_PORT=6667
79 +SO_CONTEXT_URI=
80 +SO_URL=https://localhost:6667/
81
82 # VFC
83
84 -VFC_HOST=
85 -VFC_PORT=
86 +VFC_HOST=localhost
87 +VFC_PORT=6668
88 VFC_CONTEXT_URI=api/nslcm/v1/
89
90 # SDNC
91
92 -SDNC_HOST=sdnc.{{.Release.Namespace}}
93 -SDNC_PORT=8282
94 +SDNC_HOST=localhost
95 +SDNC_PORT=6670
96 SDNC_CONTEXT_URI=restconf/operations/
97
98The AAI actor had to be modified to disable https to talk to the AAI simulator.
99
100.. code-block:: bash
101
102 ~/oom/kubernetes/policy/charts/drools/resources/configmaps/AAI-http-client.properties
103
104 http.client.services=AAI
105
106 http.client.services.AAI.managed=true
107 http.client.services.AAI.https=false
108 http.client.services.AAI.host=${envd:AAI_HOST}
109 http.client.services.AAI.port=${envd:AAI_PORT}
110 http.client.services.AAI.userName=${envd:AAI_USERNAME}
111 http.client.services.AAI.password=${envd:AAI_PASSWORD}
112 http.client.services.AAI.contextUriPath=${envd:AAI_CONTEXT_URI}
113
114The SO actor had to be modified similarly.
115
116.. code-block:: bash
117
118 oom/kubernetes/policy/charts/drools/resources/configmaps/SO-http-client.properties:
119
120 http.client.services=SO
121
122 http.client.services.SO.managed=true
123 http.client.services.SO.https=false
124 http.client.services.SO.host=${envd:SO_HOST}
125 http.client.services.SO.port=${envd:SO_PORT}
126 http.client.services.SO.userName=${envd:SO_USERNAME}
127 http.client.services.SO.password=${envd:SO_PASSWORD}
128 http.client.services.SO.contextUriPath=${envd:SO_CONTEXT_URI}
129
130The feature-controlloop-utils was started by adding the following script:
131
132.. code-block:: bash
133
134 oom/kubernetes/policy/charts/drools/resources/configmaps/features.pre.sh:
135
136 #!/bin/bash
137 bash -c "features enable controlloop-utils"
138
jhh794fa0b2020-05-18 23:23:58 -0500139
140Stability Test of Policy PDP-D
141******************************
142
jhh2e1562f2020-05-19 14:37:51 -0500143The 72 hour stability test happened in parallel with the stability run of the API component.
jhh794fa0b2020-05-18 23:23:58 -0500144
145Worker Node performance
146=======================
147
148The VM named onap-k8s-07 was monitored for the duration of the two parallel
149stability runs. The table below show the usage ranges:
150
151.. code-block:: bash
152
153 NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
154 onap-k8s-07 <=1374m <=20% <=10643Mi <=66%
155
156PDP-D performance
157=================
158
jhh2e1562f2020-05-19 14:37:51 -0500159The PDP-D uses a small configuration:
160
161.. code-block:: bash
162
163 small:
164 limits:
165 cpu: 1
166 memory: 4Gi
167 requests:
168 cpu: 100m
169 memory: 1Gi
170
171In practicality, this corresponded to an allocated 3.75G heap for the JVM based.
172
173The PDP-D was monitored during the run and stayed below the following ranges:
jhh794fa0b2020-05-18 23:23:58 -0500174
175.. code-block:: bash
176
177 NAME CPU(cores) MEMORY(bytes)
178 dev-drools-0 <=142m 684Mi
179
jhh2e1562f2020-05-19 14:37:51 -0500180Garbage collection was monitored without detecting any significant degradation.
jhh794fa0b2020-05-18 23:23:58 -0500181
jhh2e1562f2020-05-19 14:37:51 -0500182The test set focused on the following use cases:
jhh794fa0b2020-05-18 23:23:58 -0500183
184- vCPE
185- vDNS
186- vFirewall
187
jhh2e1562f2020-05-19 14:37:51 -0500188For 72 hours the following 5 scenarios ran in parallel:
jhh794fa0b2020-05-18 23:23:58 -0500189
190- vCPE success scenario
191- vCPE failure scenario (failure returned by simulated APPC recipient through DMaaP).
192- vDNS success scenario.
193- vDNS failure scenario.
194- vFirewall success scenario.
195
jhh2e1562f2020-05-19 14:37:51 -0500196Five threads ran in parallel, one for each scenario. The transactions were initiated
197by each jmeter thread group. Each thread initiated a transaction, monitored the transaction, and
198as soon as the transaction ending was detected, it initiated the next one, so back to back with no
199pauses.
jhh794fa0b2020-05-18 23:23:58 -0500200
jhh2e1562f2020-05-19 14:37:51 -0500201All transactions completed successfully as it was expected in each scenario, with no failures.
jhh794fa0b2020-05-18 23:23:58 -0500202
203The command executed was
204
205.. code-block:: bash
206
207 jmeter -n -t /home/ubuntu/jhh/s3p.jmx > /dev/null 2>&1
208
209The results were computed by taking the ellapsed time from the audit.log
210(this log reports all end to end transactions, marking the start, end, and
211ellapsed times).
212
213The count reflects the number of successful transactions as expected in the
214use case, as well as the average, standard deviation, and max/min. An histogram
jhh2e1562f2020-05-19 14:37:51 -0500215of the response times have been added as a visual indication on the most common
216transaction times.
jhh794fa0b2020-05-18 23:23:58 -0500217
218vCPE Success scenario
219=====================
220
221ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e:
222
223.. code-block:: bash
224
225 count 155246.000000
226 mean 269.894226
227 std 64.556282
228 min 133.000000
229 50% 276.000000
230 max 1125.000000
231
232
jhh794fa0b2020-05-18 23:23:58 -0500233.. image:: images/ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e.png
234
235
236vCPE Failure scenario
237=====================
238
239ControlLoop-vCPE-Fail:
240
241.. code-block:: bash
242
243 ControlLoop-vCPE-Fail :
244 count 149621.000000
245 mean 280.483522
246 std 67.226550
247 min 134.000000
248 50% 279.000000
249 max 5394.000000
250
251
jhh794fa0b2020-05-18 23:23:58 -0500252.. image:: images/ControlLoop-vCPE-Fail.png
253
254vDNS Success scenario
255=====================
256
257ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3:
258
259.. code-block:: bash
260
261 count 293000.000000
262 mean 21.961792
263 std 7.921396
264 min 15.000000
265 50% 20.000000
266 max 672.000000
267
jhh794fa0b2020-05-18 23:23:58 -0500268
269.. image:: images/ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3.png
270
271vDNS Failure scenario
272=====================
273
274ControlLoop-vDNS-Fail:
275
276.. code-block:: bash
277
278 count 59357.000000
279 mean 3010.261267
280 std 76.599948
281 min 0.000000
282 50% 3010.000000
283 max 3602.000000
284
jhh794fa0b2020-05-18 23:23:58 -0500285
286.. image:: images/ControlLoop-vDNS-Fail.png
287
jhh2e1562f2020-05-19 14:37:51 -0500288vFirewall Success scenario
jhh794fa0b2020-05-18 23:23:58 -0500289==========================
290
291ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a:
292
293.. code-block:: bash
294
295 count 175401.000000
296 mean 184.581251
297 std 35.619075
298 min 136.000000
299 50% 181.000000
300 max 3972.000000
301
jhh794fa0b2020-05-18 23:23:58 -0500302
303.. image:: images/ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a.png
304
305
306
307