bildwelt
E2E FORUM
E2E Bridge E2E Commerce

API Management – Loadtests results

E2E Forum News API Management – Loadtests results

This topic contains 0 replies, has 1 voice, and was last updated by  Florian V. 4 months ago.

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #3175

    Florian V.
    Moderator

    Hello everyone,
    we tested how our API Management performed under heavy load and now we want to present the results to you.

    For the tests we used a really simple xUML Service. Overall we made around 3 000 000 requests against our API Management in a distributed environment in the AWS Cloud. The tool of our choice was Apache JMeter. For each test case we made 1000 requests from 10 threads.

    To provide a realistic test scenario the BRIDGE and Apache JMeter are running on different hosts than the API Management. All requests are made against the Public DNS (IPv4) and not against internal IPs. The responses gotten validated via MD5 Hash in Apache JMeter.

    With the API Management on a distributed setup your response time is delayed around 20 milliseconds.
    With the API Management on a small setup (all API Mgmt components on one host) your response time is delayed around 40-80 milliseconds.

    After all tests on a clean setup we have around 600 MB of data in our Elasticsearch storage.

    Results from the distributed setup

    Response times

    Result table

    RequestsSamplesError rate (%)Average time (ms)Minimum time (ms)Maximum time (ms)90th pct95th pct99th pct
    Direct (without API Mgmt)1000001.88 ms0.11009334
    Public API10000019.906148283242
    Keycloak OAuth210000018.5161046242632
    Rewrite Policy10000017.84688232530
    Rate Limiting Policy10000029.688241414990.99
    Mentioned policies together10000029.918236424974

    Test system

    We tested in the Amazon cloud on four EC2 instances of type M5 (https://aws.amazon.com/de/ec2/instance-types/m5/).
    This is a typically setup in which the gateway runs in a DMZ and all other components run behind the DMZ in an internal network.
    To provide a realistic test scenario the BRIDGE and Apache JMeter are running on different hosts than the API Management.

    Setup

    • CPU
      • 2.5 GHz Intel Xeon® Platinum 8175 processors with new Intel Advanced Vector Extension (AXV-512) instruction set
    • Network
      • Up to 25 Gbps network bandwidth using Enhanced Networking
    • Storage via EBS
      • Standard-SSD-Volumes (gp2)
    • OS
      • Ubuntu 18.04.01 LTS
    • Software
      • Docker CE 18.03
      • Docker-compose 1.22
      • Apache JMeter 5.0
      • API Management 7.2.0
      • BRIDGE
        • 7.1.0-4dd3adf [linux-64]
        • Linux 4.15.0-1023-aws
        • Runtime 2018.11 [BASE,SAPNW]
        • Node.js 8.11.4
    ServerAWS NamevCPURAMNetwork (EBS)Components / Docker-Container
    #1m5.2xlarge832 GBUp to 3.500 Mbit/sElasticsearch, UI, Keycloak, MySQL
    #2m5.xlarge416 GBUp to 3.500 Mbit/sGateway
    #3m5.xlarge416 GBUp to 3.500 Mbit/sApache Jmeter
    #4m5.large28 GBUp to 3.500 Mbit/sBRIDGE

     

    Results from a single host

    Response times

    Result table

    RequestsSamplesError rate (%)Average time (ms)Minimum time (ms)Maximum time (ms)90th pct95th pct99th pct
    Direct (without API Mgmt)1000002.090.134348
    Public API10000040.0262816376104
    Keycloak OAuth210000043.7072557289123
    Rewrite Policy10000040.7271956781107
    Rate Limiting Policy10000085.948382151171230.99
    Mentioned policies together10000089.499290151171216

    Test system

    We tested in the Amazon cloud on four EC2 instances of type M5 (https://aws.amazon.com/de/ec2/instance-types/m5/).
    This is a our reference setup to run all API Management components on one host.
    To provide a realistic test scenario the BRIDGE and Apache JMeter are running on different hosts than the API Management.

    Setup

    • CPU
      • 2.5 GHz Intel Xeon® Platinum 8175 processors with new Intel Advanced Vector Extension (AXV-512) instruction set
    • Network
      • Up to 25 Gbps network bandwidth using Enhanced Networking
    • Storage via EBS
      • Standard-SSD-Volumes (gp2)
    • OS
      • Ubuntu 18.04.01 LTS
    • Software
      • Docker CE 18.03
      • Docker-compose 1.22
      • Apache JMeter 5.0
      • API Management 7.2.0 (unofficialBuild)
      • BRIDGE
        • 7.1.0-4dd3adf [linux-64]
        • Linux 4.15.0-1023-aws
        • Runtime 2018.11 [BASE,SAPNW]
        • Node.js 8.11.4
    ServerAWS NamevCPURAMNetwork (EBS)Components / Docker-Container
    #1m5.large28 GBUp to 3.500 Mbit/sElasticsearch, UI, Keycloak, MySQL, Gateway
    #2m5.xlarge416 GBUp to 3.500 Mbit/sApache JMeter
    #3m5.large28 GBUp to 3.500 Mbit/sBRIDGE

     

     

    So you see that the use of our API management has an impact on the response time. However, it must also be considered that the response time depending on the service in the background and the configured policies can vary very much.

    If you need more information just let us know.

    Regards,
    Florian

Viewing 1 post (of 1 total)

You must be logged in to reply to this topic.