Performance Test Results

Summary

The performance of WSO2 API Manager was measured using the following APIs, which invoke a simple “Netty HTTP Echo Service”. As the name suggests, the Netty service echoes back any request posted to the service.

  • Echo API: This is a secured API, which directly invokes the back-end service.

  • Mediation API: This is also a secured API, which has a “sequence” as a mediation extension to modify the message.

Tests were done using 100, 200, 300, 1000, and 2000 concurrent users. Concurrent Users mean that it consists of multiple users accessing the API Gateway at the same time. Different Message Sizes (Payloads) were used for the tests with different back-end service delays. The message sizes used are 50B, 1KiB, 10KiB, and 100KiB. The back-end delays were 0ms, 30ms, 500ms, and 1s.

Deployment used for the test

APIM performance test all in one deployment

Name EC2 Instance Type vCPU Mem(GiB)
Apache JMeter Client c5.large 2 2
Apache JMeter Server 01 c5.xlarge 4 4
Apache JMeter Server 02 c5.xlarge 4 4
MySQL db.m5.large 2 8
Netty HTTP Backend c5.xlarge 4 4

vCPU for the instance running API Manager is 2 CPU Token Type: JWT The operating system is Ubuntu 18.04 MySQL version in RDS instance was 5.7

Results

You can find the complete results in this location.

The following is an extraction of the result. An average WSO2 API Manager user use ~1KiB messages and most of the back-ends usually responds in ~30ms.

Performance result graph

As WSO2 API Manager 3.0.0 supports JDK 11, WSO2 has done a separate test to get the performance numbers and it can be found in this location.

Top