Skip to content

Commit 2ada7c2

Browse files
committed
Scale test results for 1.1 (nginx#1346)
Adding scale test results and comparison summary for v1.1
1 parent 7f3a5bf commit 2ada7c2

File tree

20 files changed

+2368
-3
lines changed

20 files changed

+2368
-3
lines changed

tests/scale/results/1.1.0/1.1.0.md

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
# Results for v1.1.0
2+
3+
<!-- TOC -->
4+
- [Results for v1.1.0](#results-for-v110)
5+
- [Summary](#summary)
6+
- [Versions](#versions)
7+
- [Tests](#tests)
8+
- [Scale Listeners](#scale-listeners)
9+
- [Scale HTTPS Listeners](#scale-https-listeners)
10+
- [Scale HTTPRoutes](#scale-httproutes)
11+
- [Scale Upstream Servers](#scale-upstream-servers)
12+
- [Scale HTTP Matches](#scale-http-matches)
13+
- [Future Improvements](#future-improvements)
14+
<!-- TOC -->
15+
16+
## Summary
17+
18+
- Memory usage has increased since 1.0
19+
- Number of events being processed has increased a bit, therefore so has the average time.
20+
- CPU and TTR seem to have stayed about the same.
21+
- One of the CPU charts for the final test was not being calculated properly.
22+
23+
## Versions
24+
25+
NGF version:
26+
27+
```text
28+
commit: 7a37efac52546f2fe24dbc2772e913a49329ed6c
29+
date: 2023-12-06T02:17:06Z
30+
version: edge
31+
```
32+
33+
with NGINX:
34+
35+
```text
36+
nginx/1.25.3
37+
built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r10)
38+
OS: Linux 5.15.109+
39+
```
40+
41+
Kubernetes:
42+
43+
```json
44+
"serverVersion": {
45+
"major": "1",
46+
"minor": "27",
47+
"gitVersion": "v1.27.3-gke.100",
48+
"gitCommit": "6466b51b762a5c49ae3fb6c2c7233ffe1c96e48c",
49+
"gitTreeState": "clean",
50+
"buildDate": "2023-06-23T09:27:28Z",
51+
"goVersion": "go1.20.5 X:boringcrypto",
52+
"compiler": "gc",
53+
"platform": "linux/amd64"
54+
}
55+
```
56+
57+
## Tests
58+
59+
### Scale Listeners
60+
61+
Reloads:
62+
63+
| Total | Total Errors | Ave Time (ms) | <= 500ms |
64+
|-------|--------------|--------------------|----------|
65+
| 128 | 0 | 136.38250641586066 | 100% |
66+
67+
68+
Event Batch Processing:
69+
70+
| Total | Ave Time (ms) | <= 500ms | <= 1000ms |
71+
|-------|--------------------|----------|-----------|
72+
| 467 | 228.32680399999995 | 89.07% | 97.43% |
73+
74+
**NGINX Errors**: None.
75+
76+
**NGF Errors**: None.
77+
78+
**Pod Restarts**: None.
79+
80+
**CPU**: ![CPU.png](/tests/scale/results/1.1.0/TestScale_Listeners/CPU.png).
81+
82+
**Memory**: ![Memory.png](/tests/scale/results/1.1.0/TestScale_Listeners/Memory.png).
83+
84+
**Time To Ready**: ![TTR.png](/tests/scale/results/1.1.0/TestScale_Listeners/TTR.png).
85+
86+
### Scale HTTPS Listeners
87+
88+
Reloads:
89+
90+
| Total | Total Errors | Ave Time (ms) | <= 500ms |
91+
|-------|--------------|--------------------|----------|
92+
| 106 | 0 | 153.87735849056605 | 100% |
93+
94+
95+
Event Batch Processing:
96+
97+
| Total | Ave Time (ms) | <= 500ms | <= 1000ms | <= 5000ms |
98+
|-------|--------------------|----------|-----------|-----------|
99+
| 520 | 266.9285714285714 | 92.5% | 100% | 100% |
100+
101+
102+
**NGINX Errors**: None.
103+
104+
**NGF Errors**: None.
105+
106+
**Pod Restarts**: None.
107+
108+
**CPU**: ![CPU.png](/tests/scale/results/1.1.0/TestScale_HTTPSListeners/CPU.png).
109+
110+
**Memory**: ![Memory.png](/tests/scale/results/1.1.0/TestScale_HTTPSListeners/Memory.png).
111+
112+
**Time To Ready**: ![TTR.png](/tests/scale/results/1.1.0/TestScale_HTTPSListeners/TTR.png).
113+
114+
### Scale HTTPRoutes
115+
116+
Reloads:
117+
118+
| Delay | Total | Total Errors | Ave Time (ms) | <= 500ms | <= 1000ms |
119+
|-----------|-------|--------------|-------------------|----------|-----------|
120+
| 2 seconds | 1001 | 0 | 364.405076142132 | 75.92% | 100% |
121+
| No delay | 1001 | 0 | 358.1523316062176 | 75.92% | 100% |
122+
123+
124+
Event Batch Processing:
125+
126+
| Delay | Total | Ave Time | <= 500ms | <= 1000ms |
127+
|-----------|-------|--------------------|----------|-----------|
128+
| 2 seconds | 2056 | 200.38335809806838 | 83.37% | 100% |
129+
| No delay | 2044 | 197.871000507872 | 83.22% | 100% |
130+
131+
132+
**NGINX Errors**: None.
133+
134+
**NGF Errors**: None.
135+
136+
**Pod Restarts**: None.
137+
138+
**CPU**:
139+
140+
2-sec delay:
141+
![CPU.png](/tests/scale/results/1.1.0/TestScale_HTTPRoutes/CPU.png).
142+
143+
No delay:
144+
![CPU.png](/tests/scale/results/1.1.0/TestScale_HTTPRoutes/CPU-no-delay.png).
145+
146+
**Memory**:
147+
148+
2-sec delay:
149+
![Memory.png](/tests/scale/results/1.1.0/TestScale_HTTPRoutes/Memory.png).
150+
151+
No delay:
152+
![Memory.png](/tests/scale/results/1.1.0/TestScale_HTTPRoutes/Memory-no-delay.png).
153+
154+
**TTR**:
155+
156+
Combined:
157+
![TTR.png](/tests/scale/results/1.1.0/TestScale_HTTPRoutes/TTR.png)
158+
159+
### Scale Upstream Servers
160+
161+
| Start Time (UNIX) | End Time (UNIX) | Duration (s) |
162+
|-------------------|-----------------|--------------|
163+
| 1701893886 | 1701893955 | 69 |
164+
165+
Reloads:
166+
167+
| Total | Total Errors | Ave Time (ms) | <= 500ms |
168+
|-------|--------------|---------------------|----------|
169+
| 157 | 0 | 1126.36305732484075 | 100% |
170+
171+
Event Batch Processing:
172+
173+
| Total | Ave Time (ms) | <=500ms | <= 1000ms | <= 5000ms |
174+
|-------|--------------------|---------|-----------|-----------|
175+
| 159 | 210.08176100628933 | 99.37% | 100% | 100% |
176+
177+
**NGINX Errors**: None.
178+
179+
**NGF Errors**: None.
180+
181+
**Pod Restarts**: None.
182+
183+
**CPU**: ![CPU.png](/tests/scale/results/1.1.0/TestScale_UpstreamServers/CPU.png).
184+
185+
**Memory**: ![Memory.png](/tests/scale/results/1.1.0/TestScale_UpstreamServers/Memory.png).
186+
187+
### Scale HTTP Matches
188+
189+
**Results for the first match**:
190+
191+
```text
192+
Running 30s test @ http://cafe.example.com
193+
2 threads and 10 connections
194+
Thread Stats Avg Stdev Max +/- Stdev
195+
Latency 25.09ms 57.91ms 693.45ms 97.96%
196+
Req/Sec 284.70 24.62 330.00 84.30%
197+
16710 requests in 30.01s, 5.91MB read
198+
Requests/sec: 556.84
199+
Transfer/sec: 201.74KB
200+
```
201+
202+
**Results for the last match**:
203+
204+
```text
205+
Running 30s test @ http://cafe.example.com
206+
2 threads and 10 connections
207+
Thread Stats Avg Stdev Max +/- Stdev
208+
Latency 17.63ms 1.93ms 56.53ms 86.77%
209+
Req/Sec 284.44 18.22 323.00 74.29%
210+
17025 requests in 30.10s, 6.02MB read
211+
Requests/sec: 565.66
212+
Transfer/sec: 204.94KB
213+
```
214+
215+
**Findings**:
216+
217+
- There's not a noticeable difference between the response times for the first match and last match. In
218+
fact, the latency of the last match is slightly lower than the latency of the first match.
219+
220+
## Future Improvements
221+
222+
- Check that the statuses of the Gateway API resources are updated after each scaling event.
223+
- Measure the time it takes for NGF to update the status of the Gateway API resources after creating or updating the resources.
224+
- Record the reload time distributions per bucket after each test.
Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)