blob: 429186b6c774cd21b98e1d7c5b0b080476f95268 [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
18The kubernetes installation allocated all policy components in the same worker node VM and some additional ones. The worker VM hosting the policy components has the
19following spec:
20
21- 16GB RAM
22- 8 VCPU
23- 160GB Ephemeral Disk
24
25The standalone VM designated to run jmeter has the same configuration and was only
26used to run this tool allocating 12G of heap memory to the jmeter tool.
27
28Other ONAP components used during the estability tests are:
29
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.
40- AAI to answer queries for the usecases under test.
41
42In order to restrict APPC responses to just the jmeter too driving all transactions,
43the APPC component was disabled.
44
45SO, and AAI actors were simulated internally within the PDP-D by enabling the
46feature-controlloop-utils previous to run the tests.
47
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
55modified:
56
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
139The PDP-D uses a small configuration:
140
141
142Stability Test of Policy PDP-D
143******************************
144
145The 72 hour stability test happened in parallel with the estability run of the API component.
146
147.. code-block:: bash
148
149 small:
150 limits:
151 cpu: 1
152 memory: 4Gi
153 requests:
154 cpu: 100m
155 memory: 1Gi
156
157Approximately 3.75G heap was allocated to the PDP-D JVM at initialization.
158
159Worker Node performance
160=======================
161
162The VM named onap-k8s-07 was monitored for the duration of the two parallel
163stability runs. The table below show the usage ranges:
164
165.. code-block:: bash
166
167 NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
168 onap-k8s-07 <=1374m <=20% <=10643Mi <=66%
169
170PDP-D performance
171=================
172
173The PDP-D was monitored during the run an stayed below the following ranges:
174
175.. code-block:: bash
176
177 NAME CPU(cores) MEMORY(bytes)
178 dev-drools-0 <=142m 684Mi
179
180Garbagge collection was monitored without detecting any major spike.
181
182The following use cases were tested:
183
184- vCPE
185- vDNS
186- vFirewall
187
188For 72 hours the following 5 scenarios were run in parallel:
189
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
196Five threads, one for each scenario described above, push the traffic back to back
197with no pauses.
198
199All transactions completed successfully as expected in each scenario.
200
201The command executed was
202
203.. code-block:: bash
204
205 jmeter -n -t /home/ubuntu/jhh/s3p.jmx > /dev/null 2>&1
206
207The results were computed by taking the ellapsed time from the audit.log
208(this log reports all end to end transactions, marking the start, end, and
209ellapsed times).
210
211The count reflects the number of successful transactions as expected in the
212use case, as well as the average, standard deviation, and max/min. An histogram
213of the response times have been added as a visual indication on the most common transaction times.
214
215vCPE Success scenario
216=====================
217
218ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e:
219
220.. code-block:: bash
221
222 count 155246.000000
223 mean 269.894226
224 std 64.556282
225 min 133.000000
226 50% 276.000000
227 max 1125.000000
228
229
230Transaction Times histogram:
231
232.. image:: images/ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e.png
233
234
235vCPE Failure scenario
236=====================
237
238ControlLoop-vCPE-Fail:
239
240.. code-block:: bash
241
242 ControlLoop-vCPE-Fail :
243 count 149621.000000
244 mean 280.483522
245 std 67.226550
246 min 134.000000
247 50% 279.000000
248 max 5394.000000
249
250
251Transaction Times histogram:
252
253.. image:: images/ControlLoop-vCPE-Fail.png
254
255vDNS Success scenario
256=====================
257
258ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3:
259
260.. code-block:: bash
261
262 count 293000.000000
263 mean 21.961792
264 std 7.921396
265 min 15.000000
266 50% 20.000000
267 max 672.000000
268
269Transaction Times histogram:
270
271.. image:: images/ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3.png
272
273vDNS Failure scenario
274=====================
275
276ControlLoop-vDNS-Fail:
277
278.. code-block:: bash
279
280 count 59357.000000
281 mean 3010.261267
282 std 76.599948
283 min 0.000000
284 50% 3010.000000
285 max 3602.000000
286
287Transaction Times histogram:
288
289.. image:: images/ControlLoop-vDNS-Fail.png
290
291vFirewall Failure scenario
292==========================
293
294ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a:
295
296.. code-block:: bash
297
298 count 175401.000000
299 mean 184.581251
300 std 35.619075
301 min 136.000000
302 50% 181.000000
303 max 3972.000000
304
305Transaction Times histogram:
306
307.. image:: images/ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a.png
308
309
310
311