From 8d7b04934ade1c5a370375905bf17174d0e25ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Mass=C3=A9?= Date: Tue, 29 Aug 2017 18:10:07 +0200 Subject: [PATCH] add performance test results --- README.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/README.md b/README.md index 39e5777..1353ba8 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,43 @@ uses instead a custom resolver. Once, you get it to work on `apicast-staging`, you can do the same on `apicast-production`. +## Performances + +The following section tries to evaluate the overhead of this module on apicast +performances. + +Performance tests have been run on a vanilla apicast and an apicast with this +module. Both tests have been run with 1k requests and responses and 10k requests +and responses. + +All tests have been performed on the same hardware : + - Macbook Pro 15" Mid-2015 + - 2,5 GHz Intel Core i7 (8 cores) + - 16 GB of RAM + +All components apicast + rsyslog ran on the same machine, directly on MacOS. +All external systems (3scale backend, Echo API) have been simulated using +the apicast built-in stubs. + + +More information is available [here](performance-testing). + +The results are the following: + +| test | req / s | overhead | +| --- | --- | --- | +| 1K Request + Response - Vanilla | 7692 | - | +| 1K Request + Response - with this module | 5882 | **- 23%** | +| 10K Request + Response - Vanilla | 6250 | - | +| 10K Request + Response - with this module | 3174 | **- 49%** | + +The results are not very surprising considering that the module needs to: + - read the full body of the request and the response + - encode them as base64 + - serialize the whole data as JSON + +**TODO:** run performance tests to analyze the added latency + ## Message format The requests and responses are serialized as follow: