Realistic Kong 3.8.0.0 Performance Benchmark
- Kalidass Mookkaiah
- Oct 24, 2024
- 2 min read
Updated: Apr 6
Why Realistic Performance Results matters
Kong does publishes a performance benchmark in the documentation. Which is a fantastic result to know.
This benchmark does not work for many clients. Two of the top reasons why a realistic performance is worth knowing for clients.
Kong benchmark was run on AWS using EC2, single dedicated instance of c5.4xlarge which has 16 vCPU and 32 GiB memory. Clients often allocate 2 vCPU and 4 GiB memory for instances on cloud providers. These are significantly different machines in terms of compute and performance.
Client often allocate smaller machines per node. Clients often look at scaling out Kong Instances rather than scaling up Kong Instances. So being closer to 2 vCPU and 4 GiB memory is more realistic performance result.
Realistic Config
Listed is realistic Kong machine config used for this benchmark results
CPU | 2 CPU of Intel(R) Xeon(R) CPU @ 2.20GHz |
Memory | 4 GiB |
Cloud Provider | GCP |
Machine Type | e2-medium VM |
OS | Ubuntu 20.04 |
Low Latency and Highest Throughput Performance Target
The following targets is set and configured
2 threads to make requests to match the 2 CPUs
10 concurrent connections to run the test
Maximum average latency allowed is 5 ms
Ignoring the max Latency and Standard Deviations
What is the maximum throughput that can be extracted from the compute allocated with the performance targets defined above from Kong.
Kong Configuration
1 proxy service
1 route
No plugins
ulimit set to 4096
proxy_access_log=off
log_level=debug
Kong configuration was loaded using declarative_config i.e. in DBless mode
Network Setup
The load runner, Kong Instance and Backend were hosted in the same GCP region and with in the same network.
Application Config
Backend
A HTTPS endpoint hosting a REST API with a GET
Returning a simple json response with very few characters. Similar to
{"hello":"world"}
Kong
Kong hosts a HTTPS endpoint to service as a REST API endpoint
Kong to backend is configured with HTTPs protocol
Load Runner
Load runner calls Kong endpoint using HTTPS
Performance Metrics
Number of Requests processed per Minute | Number of Requests Processed per Second | Average Latency |
455,956 | 7600 | 4.32ms |
What does it Mean
This is a measure of what is the maximum that could be extracted from a realistic compute allocated that is closer to typical customer deployment.
This is a point of reference for customers to use.
Commenti