Layer 7 API Management

Expand all | Collapse all

Run All Assertions Concurrently (performance tunning)

Jump to Best Answer
  • 1.  Run All Assertions Concurrently (performance tunning)

    Posted 08-29-2019 06:16 AM
    Edited by Albert Traveria Molero 08-29-2019 06:28 AM

    Hello Community,

    I'm working on a parallel executing assertion that basically calls different endpoints and from Live Api Creator.

    For a better understanding lets imagine I have the next scenario:

    Client --> getAllInfoGatewayMethod --> Run All Assertions Concurrently --> 9 seconds
                                                                      --> GetLacInfo1 --> response1 (2 seconds executed on LAC)
                                                                      --> GetLacInfo2 --> response2 (3,1 seconds executed on LAC)
                                                                      --> GetLacInfo2 --> response3 (4 seconds executed on LAC)
                                                                      --> GetLacInfo2 --> response4 (2,1 seconds executed on LAC)
                                                                      --> GetLacInfo2 --> response5 (2,3 seconds executed on LAC)
                                                               --> Assertions to process the extracted
                                                               --> Response Template ---> 10,1 seconds total

    Now, the issue i have is that I'm expecting it to take 4,1 or 4,5 maximum but I'm getting much more. I've tried increasing the parallelism values of the cluster (concall.globalMaxConcurrency ,concall.globalCoreConcurrency ,concall.globalMaxWorkQueue) but I'm getting more or less the same results. Any Idea how I can execute the HTTP assertions in a parallel way that I get my expected performance result?

    Reference assertion:

    Run All Assertions Concurrently Assertion


    Kind regards,
    Albert.



    ------------------------------
    Security Engineer
    ELCA
    ------------------------------


  • 2.  RE: Run All Assertions Concurrently (performance tunning)
    Best Answer

    Posted 08-29-2019 08:16 PM
    Dear Albert,
    It's more likely the bottleneck is on LAC, it's better to improve the performance/capacity on LAC side.
    If the backend server already reach its full capacity, sending more requests only make it worse, just like ddos attack. Actually, we have rate limit assertion to protect backend for this scenario.

    Regards,
    Mark



  • 3.  RE: Run All Assertions Concurrently (performance tunning)

    Posted 08-30-2019 02:40 AM
    Hello Mark,

    Yes, I'm also using for the API GW the rate limit assertion to avoid the ddos atacks. As you suggested I've requested the check on the LAC side and seems the CPU is almost all the time 100% so that will explain the lack of performance.

    Thanks a lot for your reply ;)

    Kind regards,
    Albert.

    ------------------------------
    Security Engineer
    ELCA
    ------------------------------