Skip to content

Commit c4d13b8

Browse files
committed
waf benchmark: add stress test results
1 parent 4add4f4 commit c4d13b8

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed

crowdsec-docs/docs/appsec/benchmark.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ sidebar_position: 80
1515
1616
-->
1717

18+
# Basic Benchmark
19+
1820
The Application Security Component benchmarks have been run on a AWS EC2 Instance `t2.medium` (2vCPU/4GiB RAM).
1921

2022
All the benchmarks have been run with only one `routine` configured for the Application Security Component.
@@ -63,3 +65,111 @@ On the system, we deployed:
6365
6466
![15 concurrent connections / 1000 requests](/img/appsec/bench/big_post_appsec_one_routine_15_1000.png)
6567
-->
68+
69+
# Stress Test
70+
71+
This test was run on a `c5a.4xlarge` EC2 instance (16CPU/32GiB RAM).
72+
73+
Tested versions are:
74+
75+
- Openresty `v1.27.1.2`
76+
- CrowdSec `v1.7.0`
77+
- cs-openresty-bouncer `v1.1.2`
78+
79+
Openresty was configured to not log anything and forward requests to a Go backend that always return 200, in order to improve raw throughput and not be limited by disk access.
80+
81+
Crowdsec WAF was configured with 16 routines to make use of as much CPU as possible.
82+
83+
All tests were simulating 400 concurrent users, making requests as quickly as possible during 1 minute.
84+
85+
Except for the baseline, all values in the tables are shown as a delta from the baseline performance.
86+
87+
## Baseline
88+
89+
This test was run without loading the Openresty bouncer to get a baseline throughput of the system.
90+
91+
### GET Requests
92+
93+
| Metric | Value |
94+
| --------------------- | -------- |
95+
| Average Response Time | 23.55ms |
96+
| Minimum Response Time | 21.24ms |
97+
| Median Response Time | 23.18ms |
98+
| Maximum Response Time | 255.16ms |
99+
| P90 Response Time | 24.72ms |
100+
101+
### 10% POST Requests
102+
103+
| Metric | Value |
104+
| --------------------- | -------- |
105+
| Average Response Time | 25.08ms |
106+
| Minimum Response Time | 21.29ms |
107+
| Median Response Time | 23.95ms |
108+
| Maximum Response Time | 331.08ms |
109+
| P90 Response Time | 30.95ms |
110+
111+
## Virtual Patching Rules
112+
113+
### GET Requests - 10% malicious - InBand
114+
115+
| Metric | Delta |
116+
| --------------------- | -------- |
117+
| Average Response Time | +4.94ms |
118+
| Minimum Response Time | +0.93ms |
119+
| Median Response Time | +3.48ms |
120+
| Maximum Response Time | +6.83ms |
121+
| P90 Response Time | +10.13ms |
122+
123+
### Realistic Traffic - 70% GET - 25% POST - 5% malicious - Inband
124+
125+
| Metric | Delta |
126+
| --------------------- | ------- |
127+
| Average Response Time | +4.03ms |
128+
| Minimum Response Time | +0.71ms |
129+
| Median Response Time | +2.36ms |
130+
| Maximum Response Time | +6.79ms |
131+
| P90 Response Time | +8.07ms |
132+
133+
## CRS
134+
135+
### GET Requests - 10% malicious - InBand
136+
137+
| Metric | Delta |
138+
| --------------------- | -------- |
139+
| Average Response Time | +32.85ms |
140+
| Minimum Response Time | +2.21ms |
141+
| Median Response Time | +27.47ms |
142+
| Maximum Response Time | -64.45ms |
143+
| P90 Response Time | +58.19ms |
144+
145+
### POST Requests - 10% malicious - InBand
146+
147+
| Metric | Delta |
148+
| --------------------- | --------- |
149+
| Average Response Time | +58.49ms |
150+
| Minimum Response Time | +3.18ms |
151+
| Median Response Time | +54.1ms |
152+
| Maximum Response Time | -106.76ms |
153+
| P90 Response Time | +83.01ms |
154+
155+
### Realistic Traffic - 70% GET - 25% POST - 5% malicious - Inband
156+
157+
| Metric | Delta |
158+
| --------------------- | -------- |
159+
| Average Response Time | +32.54ms |
160+
| Minimum Response Time | +1.87ms |
161+
| Median Response Time | +28.36ms |
162+
| Maximum Response Time | -68.34ms |
163+
| P90 Response Time | +53.83ms |
164+
165+
## Virtual Patching Inband + CRS Out-of-band
166+
167+
### Realistic Traffic - 70% GET - 25% POST - 5% malicious
168+
169+
| Metric | Delta |
170+
| --------------------- | --------- |
171+
| Average Response Time | +30.5ms |
172+
| Minimum Response Time | +1.56ms |
173+
| Median Response Time | +26.26ms |
174+
| Maximum Response Time | -101.66ms |
175+
| P90 Response Time | +51.18ms |

0 commit comments

Comments
 (0)