.. This work is licensed under a
.. Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

.. _drools-s3p-label:

.. toctree::
   :maxdepth: 2

Policy Drools PDP component
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Both 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.

General Setup
*************

The 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
following spec:

- 16GB RAM 
- 8 VCPU
- 160GB Ephemeral Disk

The standalone VM designated to run jmeter has the same configuration and was only
used to run this tool allocating 12G of heap memory to the jmeter tool.

Other ONAP components used during the estability tests are:

- Policy XACML PDP to process guard queries for each transaction.
- DMaaP to carry PDP-D and jmeter initiated traffic to complete transactions.
- Policy API to create (and delete at the end of the tests) policies for each
  scenario under test.
- Policy PAP to deploy (and undeploy at the end of the tests) policies for each scenario under test.

The following components are simulated during the tests.

- SO actor for the vDNS use case.
- APPC responses for the vCPE and vFW use cases.
- AAI to answer queries for the usecases under test.

In order to restrict APPC responses to just the jmeter too driving all transactions,
the APPC component was disabled.

SO, and AAI actors were simulated internally within the PDP-D by enabling the
feature-controlloop-utils previous to run the tests.

PDP-D Setup
***********

The kubernetes charts were modified previous to the installation with
the changes below.

The oom/kubernetes/policy/charts/drools/resources/configmaps/base.conf was
modified:

.. code-block:: bash

    --- a/kubernetes/policy/charts/drools/resources/configmaps/base.conf
    +++ b/kubernetes/policy/charts/drools/resources/configmaps/base.conf
    @@ -85,27 +85,27 @@ DMAAP_SERVERS=message-router

    # AAI

    -AAI_HOST=aai.{{.Release.Namespace}}
    -AAI_PORT=8443
    +AAI_HOST=localhost
    +AAI_PORT=6666
    AAI_CONTEXT_URI=

    # MSO

    -SO_HOST=so.{{.Release.Namespace}}
    -SO_PORT=8080
    -SO_CONTEXT_URI=onap/so/infra/
    -SO_URL=https://so.{{.Release.Namespace}}:8080/onap/so/infra
    +SO_HOST=localhost
    +SO_PORT=6667
    +SO_CONTEXT_URI=
    +SO_URL=https://localhost:6667/

    # VFC

    -VFC_HOST=
    -VFC_PORT=
    +VFC_HOST=localhost
    +VFC_PORT=6668
    VFC_CONTEXT_URI=api/nslcm/v1/

    # SDNC

    -SDNC_HOST=sdnc.{{.Release.Namespace}}
    -SDNC_PORT=8282
    +SDNC_HOST=localhost
    +SDNC_PORT=6670
    SDNC_CONTEXT_URI=restconf/operations/

The AAI actor had to be modified to disable https to talk to the AAI simulator.

.. code-block:: bash

    ~/oom/kubernetes/policy/charts/drools/resources/configmaps/AAI-http-client.properties

    http.client.services=AAI

    http.client.services.AAI.managed=true
    http.client.services.AAI.https=false
    http.client.services.AAI.host=${envd:AAI_HOST}
    http.client.services.AAI.port=${envd:AAI_PORT}
    http.client.services.AAI.userName=${envd:AAI_USERNAME}
    http.client.services.AAI.password=${envd:AAI_PASSWORD}
    http.client.services.AAI.contextUriPath=${envd:AAI_CONTEXT_URI}

The SO actor had to be modified similarly.

.. code-block:: bash

    oom/kubernetes/policy/charts/drools/resources/configmaps/SO-http-client.properties:

    http.client.services=SO

    http.client.services.SO.managed=true
    http.client.services.SO.https=false
    http.client.services.SO.host=${envd:SO_HOST}
    http.client.services.SO.port=${envd:SO_PORT}
    http.client.services.SO.userName=${envd:SO_USERNAME}
    http.client.services.SO.password=${envd:SO_PASSWORD}
    http.client.services.SO.contextUriPath=${envd:SO_CONTEXT_URI}

The feature-controlloop-utils was started by adding the following script:

.. code-block:: bash

    oom/kubernetes/policy/charts/drools/resources/configmaps/features.pre.sh:

    #!/bin/bash
    bash -c "features enable controlloop-utils"

The PDP-D uses a small configuration:


Stability Test of Policy PDP-D
******************************

The 72 hour stability test happened in parallel with the estability run of the API component.

.. code-block:: bash

  small:
    limits:
      cpu: 1
      memory: 4Gi
    requests:
      cpu: 100m
      memory: 1Gi

Approximately 3.75G heap was allocated to the PDP-D JVM at initialization.

Worker Node performance
=======================

The VM named onap-k8s-07 was monitored for the duration of the two parallel
stability runs.  The table below show the usage ranges:

.. code-block:: bash

    NAME          CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
    onap-k8s-07   <=1374m      <=20%  <=10643Mi       <=66%

PDP-D performance
=================

The PDP-D was monitored during the run an stayed below the following ranges:

.. code-block:: bash

    NAME           CPU(cores)   MEMORY(bytes)
    dev-drools-0   <=142m         684Mi

Garbagge collection was monitored without detecting any major spike.

The following use cases were tested:

- vCPE
- vDNS
- vFirewall

For 72 hours the following 5 scenarios were run in parallel:

- vCPE success scenario
- vCPE failure scenario (failure returned by simulated APPC recipient through DMaaP).
- vDNS success scenario.
- vDNS failure scenario.
- vFirewall success scenario.

Five threads, one for each scenario described above, push the traffic back to back
with no pauses.

All transactions completed successfully as expected in each scenario.

The command executed was

.. code-block:: bash

    jmeter -n -t /home/ubuntu/jhh/s3p.jmx > /dev/null 2>&1

The results were computed by taking the ellapsed time from the audit.log
(this log reports all end to end transactions, marking the start, end, and
ellapsed times).

The count reflects the number of successful transactions as expected in the
use case, as well as the average, standard deviation, and max/min.   An histogram
of the response times have been added as a visual indication on the most common transaction times.

vCPE Success scenario
=====================

ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e:

.. code-block:: bash

    count    155246.000000
    mean        269.894226
    std          64.556282
    min         133.000000
    50%         276.000000
    max        1125.000000


Transaction Times histogram:

.. image:: images/ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e.png


vCPE Failure scenario
=====================

ControlLoop-vCPE-Fail:

.. code-block:: bash

    ControlLoop-vCPE-Fail :
    count    149621.000000
    mean        280.483522
    std          67.226550
    min         134.000000
    50%         279.000000
    max        5394.000000


Transaction Times histogram:

.. image:: images/ControlLoop-vCPE-Fail.png

vDNS Success scenario
=====================

ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3:

.. code-block:: bash

    count    293000.000000
    mean         21.961792
    std           7.921396
    min          15.000000
    50%          20.000000
    max         672.000000

Transaction Times histogram:

.. image:: images/ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3.png

vDNS Failure scenario
=====================

ControlLoop-vDNS-Fail:

.. code-block:: bash

    count    59357.000000
    mean      3010.261267
    std         76.599948
    min          0.000000
    50%       3010.000000
    max       3602.000000

Transaction Times histogram:

.. image:: images/ControlLoop-vDNS-Fail.png

vFirewall Failure scenario
==========================

ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a:

.. code-block:: bash

    count    175401.000000
    mean        184.581251
    std          35.619075
    min         136.000000
    50%         181.000000
    max        3972.000000

Transaction Times histogram:

.. image:: images/ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a.png




