Layer7 API Management

 View Only
  • 1.  Layer 7 performance degradation

    Posted Jan 04, 2021 01:47 PM
    Hi

    It was confirmed that the performance itself as Layer 7 deteriorates as the number of APIs to be registered increases.

    ================================
    Client ---- APIGW Server (Layer7) ---- DB Server (Oracle)

     Intel (R) Core (TM) i7-9700 CPU @ 3.00GHz on VMware ESX   *  2CPU
    ================================

    I put a load on a sample API (checking the contents of the header and selecting with SQL for an external DB server).
    At that time, when the number of Policies that are not related to the processing of this API (not used in the processing flow) was increased or decreased,
    The performance of this sample API itself has deteriorated. In other words, the CPU processing load per request increases significantly.

    A load was applied from Jmeter and the limit RPS was measured.
    Then, due to the number of registered policies, the performance is greatly degraded despite the load on the same processing.

    Is this something in any Layer 7 logic? Can I tune this and improve it?​


  • 2.  RE: Layer 7 performance degradation

    Broadcom Employee
    Posted Jan 05, 2021 12:04 PM
    Hello,

    its possible are hitting something with service resolution with a large number of services defined. I would recommend opening a support ticket for this.

    What  are the polices names and urls like that you are creating? 
    Do you have any global policies defined?



  • 3.  RE: Layer 7 performance degradation

    Posted Jan 14, 2021 01:01 AM
    I got a support ticket.
    Case No. 32479028

    The response from support is as follows.
    (The person in charge answered in Japanese. This is a translation)
    ---------------------------------------------
    The content of your question is not a Gateway bug, but a performance question in your environment.

    As the number of policies and services registered with the Gateway increases, the performance will decrease proportionally.
    The extent of the impact depends on the environment (CPU, RAM (allocation to JVM), network, etc.) and operational status.
    ---------------------------------------------

    But I don't think so.
    I think it's not an environmental issue but a system issue that degrades performance in proportion to the number of unused policies and services, or data.

    There are only two Global Policy issues, and only simple processing is performed.
    If it is a service solution problem, it may be like an Index problem if it is compared with DB.




  • 4.  RE: Layer 7 performance degradation

    Posted Jan 15, 2021 12:24 PM
    It may be worth checking the utilization stats of your machine housing the database. CPU utilization and free memory. Pay particular attention to what processes are using the CPU and Memory. If you have over 3,000 policies, the DB will have to parse through. That said, I don't know that 3,000 policies would create a massive DB.

    Based on my personal experience with the gateway and its operations, I'm guessing there are some DB configuration tweaks you may need to do. For instance, innodb_buffer_pool_size may need to be increased (and innodb_buffer_pool_instances along with it). It's possible that you're hitting disk more than you want to instead of loading the DB into memory. Just be careful not to provision too much memory to MySQL since that could take away from the gateway process. Remember, the gateway process grabs a percentage of the memory footprint of the machine.

    If MySQL isn't taking up the CPU / memory cycles, it could be gateway java process itself. With 3,000 policies in there, you could be running into a scenario where it's the JVM is running a lot of Garbage Collection, which you may be able to address by working with memory configs.

    Good luck!