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 | .. _apex-s3p-label: |
| 6 | |
| 7 | .. toctree:: |
| 8 | :maxdepth: 2 |
| 9 | |
| 10 | Policy APEX PDP component |
| 11 | ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 12 | |
| 13 | Setting up Stability Tests in APEX |
| 14 | ++++++++++++++++++++++++++++++++++ |
| 15 | |
| 16 | Introduction |
| 17 | ------------ |
| 18 | |
| 19 | The 72 hour Stability Test for apex-pdp has the goal of introducing a steady flow of transactions initiated from a test client server running JMeter. The pdp is configured to start a rest server inside it and take input from rest clients (JMeter) and send back output to the rest clients (JMeter). |
| 20 | |
| 21 | The input events will be submitted through rest interface of apex-pdp and the results are verified using the rest responses coming out from apex-pdp. |
| 22 | |
| 23 | The test will be performed in a multi-threaded environment where 20 threads running in JMeter will keep sending events to apex-pdp in every 500 milliseconds for the duration of 72 hours. |
| 24 | |
| 25 | Setup details |
| 26 | ------------- |
| 27 | |
| 28 | The stability test is performed on VM's running in OpenStack cloud environment. There are 2 seperate VM's, one for running apex pdp & other one for running JMeter to simulate steady flow of transactions. |
| 29 | |
| 30 | **OpenStack environment details** |
| 31 | |
| 32 | Version: Mitaka |
| 33 | |
| 34 | **apex-pdp VM details** |
| 35 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 36 | OS:Ubuntu 18.04 LTS |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 37 | |
| 38 | CPU: 4 core |
| 39 | |
| 40 | RAM: 4 GB |
| 41 | |
| 42 | HardDisk: 40 GB |
| 43 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 44 | Docker Version: 19.03.8, build afacb8b7f0 |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 45 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 46 | Java: openjdk version "11.0.7" |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 47 | |
| 48 | **JMeter VM details** |
| 49 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 50 | OS: Ubuntu 18.04 LTS |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 51 | |
| 52 | CPU: 4 core |
| 53 | |
| 54 | RAM: 4 GB |
| 55 | |
| 56 | HardDisk: 40 GB |
| 57 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 58 | Java: openjdk version "11.0.7" |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 59 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 60 | JMeter: 5.2.1 |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 61 | |
| 62 | Install JMeter in virtual machine |
| 63 | --------------------------------- |
| 64 | |
| 65 | Make the etc/hosts entries |
| 66 | |
| 67 | .. code-block:: bash |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 68 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 69 | echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 70 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 71 | Make the DNS entries |
| 72 | |
| 73 | .. code-block:: bash |
| 74 | |
| 75 | echo "nameserver <PrimaryDNSIPIP>" >> sudo /etc/resolvconf/resolv.conf.d/head |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 76 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 77 | echo "nameserver <SecondaryDNSIP>" >> sudo /etc/resolvconf/resolv.conf.d/head |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 78 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 79 | resolvconf -u |
| 80 | |
| 81 | Update the ubuntu software installer |
| 82 | |
| 83 | .. code-block:: bash |
| 84 | |
| 85 | apt-get update |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 86 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 87 | Check & Install Java |
| 88 | |
| 89 | .. code-block:: bash |
| 90 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 91 | apt-get install -y openjdk-11-jdk |
| 92 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 93 | java -version |
| 94 | |
| 95 | Download & install JMeter |
| 96 | |
| 97 | .. code-block:: bash |
| 98 | |
| 99 | mkdir jMeter |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 100 | |
| 101 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 102 | cd jMeter |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 103 | |
| 104 | |
| 105 | wget http://mirrors.whoishostingthis.com/apache//jmeter/binaries/apache-jmeter-5.2.1.zip |
| 106 | |
| 107 | |
| 108 | unzip apache-jmeter-5.2.1.zip |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 109 | |
| 110 | Install apex-pdp in virtual machine |
| 111 | ----------------------------------- |
| 112 | |
| 113 | We will be running apex-pdp as docker container. So we need to first install docker and then create the container hosting apex-pdp by pulling the image from ONAP repository. |
| 114 | |
| 115 | **Docker Installation** |
| 116 | |
| 117 | 1. Make the etc/hosts entries |
| 118 | |
| 119 | .. code-block:: bash |
| 120 | |
| 121 | echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 122 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 123 | 2. Make the DNS entries |
| 124 | |
| 125 | .. code-block:: bash |
| 126 | |
| 127 | echo "nameserver <PrimaryDNSIPIP>" >> sudo /etc/resolvconf/resolv.conf.d/head |
| 128 | echo "nameserver <SecondaryDNSIP>" >> sudo /etc/resolvconf/resolv.conf.d/head |
| 129 | resolvconf -u |
| 130 | |
| 131 | 3. Update the ubuntu software installer |
| 132 | |
| 133 | .. code-block:: bash |
| 134 | |
| 135 | apt-get update |
| 136 | |
| 137 | 4. Check and Install Java |
| 138 | |
| 139 | .. code-block:: bash |
| 140 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 141 | apt-get install -y openjdk-11-jdk |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 142 | java -version |
| 143 | |
| 144 | Ensure that the Java version that is executing is OpenJDK version 8 |
| 145 | |
| 146 | 5. Check and install docker |
| 147 | |
| 148 | .. code-block:: bash |
| 149 | |
| 150 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 151 | sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
| 152 | sudo apt-get update |
| 153 | sudo apt-cache policy docker-ce |
| 154 | sudo apt-get install -y docker-ce |
| 155 | sudo systemctl enable docker |
| 156 | sudo systemctl start docker |
| 157 | sudo usermod -aG docker <your user id> |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 158 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 159 | 6. Logout and re-login to ensure the ``usermod`` command takes effective |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 160 | |
| 161 | 7. Check the status of the Docker service and ensure it is running correctly |
| 162 | |
| 163 | .. code-block:: bash |
| 164 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 165 | docker ps |
| 166 | |
| 167 | **Install apex-pdp** |
| 168 | |
| 169 | Run the below command to create the container hosting apex-pdp by pulling the image from ONAP repository. |
| 170 | |
| 171 | .. code-block:: bash |
| 172 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 173 | docker run -d --name apex -p 12561:12561 -p 23324:23324 -p 9911:9911 nexus3.onap.org:10001/onap/policy-apex-pdp:2.3.1 /bin/bash -c "/opt/app/policy/apex-pdp/bin/apexApps.sh jmx-test -c /opt/app/policy/apex-pdp/examples/config/SampleDomain/RESTServerJsonEvent.json" |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 174 | docker ps |
| 175 | |
| 176 | Note: If you observe that requests from JMeter client is failing due to timeout, then modify the "RESTServerJsonEvent.json" mentioned in the above command and increase the "synchronousTimeout" property as per needed. |
| 177 | |
| 178 | Install & Configure VisualVM |
| 179 | ---------------------------- |
| 180 | |
| 181 | VisualVM needs to be installed in the virtual machine having apex-pdp. It will be used to monitor CPU, Memory, GC for apex-pdp while stability test is running. |
| 182 | |
| 183 | Install visualVM |
| 184 | |
| 185 | .. code-block:: bash |
| 186 | |
| 187 | sudo apt-get install visualvm |
| 188 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 189 | Login to VM using graphical interface in separate terminal window. |
| 190 | |
| 191 | .. code-block:: bash |
| 192 | |
| 193 | ssh -X <user>@<VM-IP-ADDRESS> |
| 194 | |
| 195 | Open visualVM |
| 196 | |
| 197 | .. code-block:: bash |
| 198 | |
| 199 | visualvm & |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 200 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 201 | Connect to apex-pdp JVM's JMX agent |
| 202 | 1. Right click on "Local" in the left panel of the screen and select "Add Local JMX Connection..." |
| 203 | 2. Enter localhost:9911 for "Connection", and click OK |
| 204 | 3. Double click on the newly added nodes under "Local" to start monitoring CPU, Memory & GC. |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 205 | |
| 206 | Sample Screenshot of visualVM |
| 207 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 208 | .. image:: images/stability-visualvm1.PNG |
| 209 | .. image:: images/stability-visualvm2.PNG |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 210 | |
| 211 | Test Plan |
| 212 | --------- |
| 213 | |
| 214 | The 72 hours stability test will run the following steps in 20 threaded loop. |
| 215 | |
| 216 | - **Send Input Event** - sends an input message to rest interface of apex-pdp. |
| 217 | - **Assert Response Code** - assert the response code coming from apex-pdp. |
| 218 | - **Assert Response Message** - assert the response message coming from apex-pdp. |
| 219 | |
| 220 | The following steps can be used to configure the parameters of test plan. |
| 221 | |
| 222 | - **HTTP Header Manager** - used to store headers which will be used for making HTTP requests. |
| 223 | - **HTTP Request Defaults** - used to store HTTP request details like Server Name or IP, Port, Protocol etc. |
| 224 | - **User Defined Variables** - used to store following user defined parameters. |
| 225 | |
| 226 | ================== ============================================================================ ============================ |
| 227 | **Name** **Description** **Default Value** |
| 228 | ================== ============================================================================ ============================ |
| 229 | wait Wait time after each request (in milliseconds) 500 |
| 230 | threads Number of threads to run test cases in parallel. 20 |
| 231 | threadsTimeOutInMs Synchronization timer for threads running in parallel (in milliseconds). 5000 |
| 232 | ================== ============================================================================ ============================ |
| 233 | |
| 234 | |
| 235 | Download and update the jmx file presented in the apex-pdp git repository - `jmx file path <https://gerrit.onap.org/r/gitweb?p=policy/apex-pdp.git;a=tree;f=testsuites/apex-pdp-stability/src/main/resources;h=99d373033a190a690d4e05012bc3a656cae7bc3f;hb=refs/heads/master>`_. |
| 236 | |
| 237 | - HTTPSampler.domain - The ip address of VM which the apex container is running |
| 238 | - HTTPSampler.port - The listening port, here is 23324 |
| 239 | - ThreadGroup.druation - Set the duration to 72 hours (in seconds) |
| 240 | |
| 241 | Use the CLI mode to start the test |
| 242 | |
| 243 | .. code-block:: bash |
| 244 | |
| 245 | ./jmeter.sh -n -t ~/apexPdpStabilityTestPlan.jmx -Jusers=1 -l ~/stability.log |
| 246 | |
| 247 | Stability Test Result |
| 248 | --------------------- |
| 249 | |
| 250 | **Summary** |
| 251 | |
| 252 | Stability test plan was triggered for 72 hours injecting input events to apex-pdp from 20 client threads running in JMeter. |
| 253 | |
| 254 | After the test stop, we can generate a HTML test report via command |
| 255 | |
| 256 | .. code-block:: bash |
| 257 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 258 | ~/jMeter/apache-jmeter-5.2.1/bin/jmeter -g stability.log -o ./result/ |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 259 | |
| 260 | ============================================== =================================================== ================================ ============= ============ |
| 261 | **Number of Client Threads running in JMeter** **Number of Server Threads running in Apex engine** **Total number of input events** **Success %** **Error %** |
| 262 | ============================================== =================================================== ================================ ============= ============ |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 263 | 20 4 8594220 100% 0% |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 264 | ============================================== =================================================== ================================ ============= ============ |
| 265 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 266 | .. image:: images/stability-jmeter.PNG |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 267 | |
liamfallon | 75f9532 | 2020-07-07 10:36:59 +0100 | [diff] [blame] | 268 | :download:`result.zip <zip/frankfurt/apex_s3p_result.tar.gz>` |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 269 | |
aditya.puthuparambil | 9d4e96e | 2020-06-02 12:10:24 +0100 | [diff] [blame] | 270 | |
| 271 | Frankfurt release |
| 272 | ^^^^^^^^^^^^^^^^^^ |
| 273 | |
| 274 | The 72 hour Stability Test for apex-pdp has the goal of introducing a steady flow of transactions using jMeter. |
| 275 | |
| 276 | The input event will be submitted through the rest interface of DMaaP , which then triggers a grpc request to CDS. Based on the response, another DMaaP event is triggered. |
| 277 | |
| 278 | This test will be performed in an OOM deployment setup. The test will be performed in a multi-threaded environment where 5 threads running in JMeter will keep sending events for the duration of 72 hours. |
| 279 | |
| 280 | Test Plan Frankfurt release |
| 281 | --------------------------- |
| 282 | |
| 283 | The 72 hours stability test will run the following steps in a 5 threaded loop. |
| 284 | |
| 285 | - **Create Policy** - creates a policy using the policy/api component |
| 286 | - **Deploy Policy** - deploys the policy in the existing PdpGroup |
| 287 | - **Check Health** - checks the health status of apex |
| 288 | - **Send Input Event** - trigger 'unauthenticated.DCAE_CL_OUTPUT' event of DMaaP. |
| 289 | - **Get Output Event Response** - check for the triggered output event. |
| 290 | - **Undeploy Policy** - undeploys the policy from PdpGroup |
| 291 | - **Delete Policy** - deletes the policy using the policy/api component |
| 292 | |
| 293 | The following steps can be used to configure the parameters of the test plan. |
| 294 | |
| 295 | - **HTTP Header Manager** - used to store headers which will be used for making HTTP requests. |
| 296 | - **HTTP Request Defaults** - used to store HTTP request details like Server Name or IP, Port, Protocol etc. |
| 297 | - **User Defined Variables** - used to store the following user defined parameters: |
| 298 | |
| 299 | ================== ============================================================================ ============================ |
| 300 | **Name** **Description** **Default Value** |
| 301 | ================== ============================================================================ ============================ |
| 302 | wait Wait time after each request (in milliseconds) 120000 |
| 303 | threads Number of threads to run test cases in parallel. 5 |
| 304 | threadsTimeOutInMs Synchronization timer for threads running in parallel (in milliseconds). 150000 |
| 305 | ================== ============================================================================ ============================ |
| 306 | |
| 307 | |
| 308 | Download and update the jmx file presented in the apex-pdp git repository - `jmx file path <https://gerrit.onap.org/r/gitweb?p=policy/apex-pdp.git;a=tree;f=testsuites/apex-pdp-stability/src/main/resources;h=99d373033a190a690d4e05012bc3a656cae7bc3f;hb=refs/heads/master>`_. |
| 309 | |
| 310 | - HTTPSampler.domain - The ip address of the VM in which the apex container is running |
| 311 | - HTTPSampler.port - The listening port, here is 23324 |
| 312 | - ThreadGroup.druation - Set the duration to 72 hours (in seconds) |
| 313 | |
| 314 | Use the CLI mode to start the test |
| 315 | |
| 316 | .. code-block:: bash |
| 317 | |
| 318 | ./jmeter.sh -n -t ~/apexPdpStabilityTestPlan.jmx -Jusers=1 -l ~/stability.log |
| 319 | |
| 320 | |
| 321 | Stability Test Results Frankfurt release |
| 322 | ----------------------------------------- |
| 323 | |
| 324 | The stability test plan was triggered for 72 hours, injecting input events to apex-pdp from 5 client threads running in JMeter. |
| 325 | |
| 326 | After the test stops, we can generate an HTML test report via the command: |
| 327 | |
| 328 | .. code-block:: bash |
| 329 | |
| 330 | ~/jMeter/apache-jmeter-5.2.1/bin/jmeter -g stability.log -o ./result/ |
| 331 | |
| 332 | ============================================== =================================================== ================================ ============= ============ |
| 333 | **Number of Client Threads running in JMeter** **Number of Server Threads running in Apex engine** **Total number of input events** **Success %** **Error %** |
| 334 | ============================================== =================================================== ================================ ============= ============ |
| 335 | 5 4 26766 100% 0% |
| 336 | ============================================== =================================================== ================================ ============= ============ |
| 337 | |
| 338 | **VisualVM Screenshot** |
| 339 | |
| 340 | .. image:: images/frankfurt/apex_s3p_vm-1.png |
| 341 | .. image:: images/frankfurt/apex_s3p_vm-2.png |
| 342 | |
| 343 | **JMeter Screenshot** |
| 344 | |
| 345 | .. image:: images/frankfurt/apex_s3p_jm-1.png |
| 346 | .. image:: images/frankfurt/apex_s3p_jm-2.png |
| 347 | |
liamfallon | 75f9532 | 2020-07-07 10:36:59 +0100 | [diff] [blame] | 348 | :download:`result.zip <zip/frankfurt/apex_s3p_result.tar.gz>` |
aditya.puthuparambil | 9d4e96e | 2020-06-02 12:10:24 +0100 | [diff] [blame] | 349 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 350 | Setting up Performance Tests in APEX |
| 351 | ++++++++++++++++++++++++++++++++++++ |
| 352 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 353 | The apex-pdp has built in support for performance testing. A special performance testing REST server is available in the code base for performance testing. |
| 354 | It is in the module `performance-benchmark-test <https://github.com/onap/policy-apex-pdp/tree/master/testsuites/performance/performance-benchmark-test>`_. |
| 355 | To execute a benchmark test, you start the REST server, and then configure and run APEX against the server. |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 356 | There are example configurations for running tests in the `resources of this module <https://github.com/onap/policy-apex-pdp/tree/master/testsuites/performance/performance-benchmark-test/src/main/resources/examples/benchmark>`_. |
| 357 | |
| 358 | In order to run the test for 72 hours, set the batch count in the `EventGeneratorConfig.json <https://github.com/onap/policy-apex-pdp/blob/master/testsuites/performance/performance-benchmark-test/src/main/resources/examples/benchmark/EventGeneratorConfig.json>`_ file to zero, which causes the REST server to generate batches forever. |
| 359 | |
| 360 | Here is an example of how to do this: |
| 361 | |
| 362 | 1. Clone and build the apex-pdp git repo |
| 363 | |
| 364 | 2. Go into the performance-benchmark-test module and run the REST server |
| 365 | |
| 366 | .. code-block:: bash |
| 367 | |
| 368 | cd testsuites/performance/performance-benchmark-test |
| 369 | mvn exec:java -Dexec.mainClass="org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.EventGenerator" -Dexec.args="-c src/main/resources/examples/benchmark/EventGeneratorConfig.json" |
| 370 | |
| 371 | 3. Separately, create a local directory and unzip the APEX tarball |
| 372 | |
| 373 | .. code-block:: bash |
| 374 | |
| 375 | mkdir apex |
| 376 | cd apex |
| 377 | tar zxvf ~/git/onap/policy/apex-pdp/packages/apex-pdp-package-full/target/*gz |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 378 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 379 | 4. Run APEX with a configuration that runs against the benchmark REST server, select the configuration that is appropriate for the number of threads for the number of cores on the host on which APEX is running. For example on a 32 core machine, select the "32" configuration, on an 8 core machine, select the "08" configuration. |
| 380 | |
| 381 | .. code-block:: bash |
| 382 | |
| 383 | bin/apexApps.sh engine -c ~/git/onap/policy/apex-pdp/testsuites/performance/performance-benchmark-test/src/main/resources/examples/benchmark/Javascript64.json |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 384 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 385 | 5. To get the test results, Issue the following command using CURL or from a browser(also can store the result into a file by setting outfile in the `EventGeneratorConfig.json <https://github.com/onap/policy-apex-pdp/blob/master/testsuites/performance/performance-benchmark-test/src/main/resources/examples/benchmark/EventGeneratorConfig.json>`_ file, statistics would be written into this file after event generator terminated) |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 386 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 387 | .. code-block:: bash |
| 388 | |
| 389 | curl http://localhost:32801/EventGenerator/Stats |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 390 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 391 | The results are similar to those below: |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 392 | |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 393 | :download:`Example APEX performance metrics <json/example-apex-perf.json>` |
| 394 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 395 | Performance Test Result Frankfurt |
Pamela Dragosh | 6eec875 | 2020-05-21 11:06:03 -0400 | [diff] [blame] | 396 | --------------------------------- |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 397 | |
| 398 | **Summary** |
| 399 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 400 | Performance test was triggered for 2 hours on a 4 core, 4GB RAM virtual machine. |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 401 | |
| 402 | **Test Statistics** |
| 403 | |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 404 | :download:`Attached result log <json/frankfurt-apex-perf.json>` |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 405 | |
| 406 | =============== ============= ================= ============== ===================== ================== ============= =========== |
| 407 | **batchNumber** **batchSize** **eventsNotSent** **eventsSent** **eventsNotReceived** **eventsReceived** **Success %** **Error %** |
| 408 | =============== ============= ================= ============== ===================== ================== ============= =========== |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 409 | -1 431250 0 431250 0 431250 100 % 0 % |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 410 | =============== ============= ================= ============== ===================== ================== ============= =========== |
| 411 | |
| 412 | ======================== ========================= ======================== |
| 413 | **averageRoundTripNano** **shortestRoundTripNano** **longestRoundTripNano** |
| 414 | ======================== ========================= ======================== |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 415 | 148965724 20169907 429339393 |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 416 | ======================== ========================= ======================== |
| 417 | |
| 418 | ============================ ============================= ============================ |
| 419 | **averageApexExecutionNano** **shortestApexExecutionNano** **longestApexExecutionNano** |
| 420 | ============================ ============================= ============================ |
huaxing | d51d906 | 2020-05-20 15:21:53 +0800 | [diff] [blame] | 421 | 62451899 3901010 354528579 |
Pamela Dragosh | ba45dc6 | 2020-04-16 09:27:44 -0400 | [diff] [blame] | 422 | ============================ ============================= ============================ |