Summary
Performance test was triggered injecting vCPE, vFirewall, vDNS, VOLTE onset & abatement (where applicable) messages through REST interface of Drools PDP installed in windriver lab (PFPP).
The test environment was set-up using simulated components i.e. A&AI, VFC and SO using "features enable controlloop-utils". However the performance test subscribes to the POLICY-CL-MGT topic, which is not simulated, to determine when the PDP has completed various steps.
The performance test runs 10 simultaneous threads injecting ONSET messages. In each thread, each of the different types of ONSETs is injected and processed in a serial fashion, first vCPE is injected and its associated APPC requests are answered, then vFirewall is injected, and so on. Each thread repeats this process 1000 times. APPC response messages were injected in the test plan wherever needed.
Average processing time was calculated using the last 10000 records from audit.log for each use case using the below script:
In addition, each thread in the performance test script waits for notifications, via the POLICY-CL-MGT topic, to indicate that an APP-C request has been issued, and then injects the APP-C response via the REST interface. Thus the elapsed time reported above includes time spent from the publish to POLICY-CL-MGT until the response is received on the REST interface. This was calculated by examining all network.log files corresponding to the time when the test was executed using the below script:
Result
Time taken by Drools PDP
Use case | Average time taken to execute one ONSET message | Sample taken for average |
---|---|---|
vCPE | 341 ms | Last 10,000 |
vFirewall | 184 ms | Last 10,000 |
vDNS | 18 ms | Last 10,000 |
VOLTE | 16 ms | Last 10,000 |
Time taken by APP-C
Average time taken to publish request to POLICY-CL-MGT and receive response on REST interface | Sample taken for average |
---|---|
142 ms | 30,000 |
The above time applies twice for vCPE, once to handle the APPC-reponse and once to handle the ABATEMENT. In addition, it applies once for vFirewall, to handle the APPC-response, and zero times for vDNS and VOLTE. Eliminating these times results in the following elapsed times for Drools PDP.
Use case | Average time taken to execute one ONSET message without DMaaP time |
---|---|
vCPE | 57 ms |
vFirewall | 42 ms |
vDNS | 18 ms |
VOLTE | 16 ms |
CPU Utilization
Total CPU used by the PDP was measured before and after the test, using "ps -l".
Initial CPU time | Final CPU time | Total CPU used during test | Average CPU per ONSET |
---|---|---|---|
00:36:55 | 00:43:28 | 393 ms | 9.8 ms |
Memory Utilization
Number of young garbage collections used during the test: 1468 Avg. Young garbage collection time: ~5.8 ms per collection Total number of Full garbage collection: 3 Avg. Full garbage collection time: ~112 ms per collection S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 2048.0 2048.0 0.0 704.0 68096.0 59110.3 432640.0 86116.6 73344.0 71849.4 8320.0 7801.2 321 2.033 3 0.337 2.370 2560.0 1536.0 0.0 1088.0 93184.0 82890.4 432640.0 143366.1 73344.0 71882.9 8320.0 7804.8 1789 10.564 3 0.337 10.901
Performance Metrics
No. | Metric | Description | Result | Comments |
---|---|---|---|---|
4 | Maximum Simultaneous Executions | Measure the maximum number of simultaneous policy executions that can be achieved whilst maintaining system stability and resource utilization | 10 | DMaaP connection limitations prevented the test from running more than 10 simultaneous threads/ONSETs |
5 | Multi-Threaded Response Time | Measure the execution time for onset and abatement in each use case when multiple threads are injecting ONSET events simultaneously | vCPE - 57 ms vFirewall - 42 ms vDNS - 18 ms VOLTE - 16 ms | |
6 | Multi Threaded CPU Usage | CPU Usage for each use case when multiple threads are injecting ONSET events simultaneously | 9.8 ms | |
7 | Multi Threaded Memory Usage | Memory Usage for each use case when multiple threads are injecting ONSET events simultaneously |