Skip to content

Commit 9d07512

Browse files
authored
NFR Test Results for NGF version 1.3.0 (Plus) (#2110)
1 parent d46162d commit 9d07512

File tree

16 files changed

+339
-0
lines changed

16 files changed

+339
-0
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Results
2+
3+
## Test environment
4+
5+
NGINX Plus: true
6+
7+
GKE Cluster:
8+
9+
- Node count: 12
10+
- k8s version: v1.28.9-gke.1000000
11+
- vCPUs per node: 16
12+
- RAM per node: 65855088Ki
13+
- Max pods per node: 110
14+
- Zone: us-east1-b
15+
- Instance Type: n2d-standard-16
16+
17+
## Summary
18+
19+
Similar results to last time.
20+
21+
## Test1: Running latte path based routing
22+
23+
```text
24+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
25+
Duration [total, attack, wait] 30s, 29.999s, 998.021µs
26+
Latencies [min, mean, 50, 90, 95, 99, max] 658.142µs, 996.64µs, 951.429µs, 1.093ms, 1.145ms, 1.386ms, 26.648ms
27+
Bytes In [total, mean] 4770000, 159.00
28+
Bytes Out [total, mean] 0, 0.00
29+
Success [ratio] 100.00%
30+
Status Codes [code:count] 200:30000
31+
Error Set:
32+
```
33+
34+
## Test2: Running coffee header based routing
35+
36+
```text
37+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
38+
Duration [total, attack, wait] 30s, 29.999s, 870.391µs
39+
Latencies [min, mean, 50, 90, 95, 99, max] 700.225µs, 1.01ms, 981.048µs, 1.134ms, 1.186ms, 1.329ms, 21.685ms
40+
Bytes In [total, mean] 4800000, 160.00
41+
Bytes Out [total, mean] 0, 0.00
42+
Success [ratio] 100.00%
43+
Status Codes [code:count] 200:30000
44+
Error Set:
45+
```
46+
47+
## Test3: Running coffee query based routing
48+
49+
```text
50+
Requests [total, rate, throughput] 30000, 1000.06, 1000.03
51+
Duration [total, attack, wait] 29.999s, 29.998s, 964.352µs
52+
Latencies [min, mean, 50, 90, 95, 99, max] 712.998µs, 984.528µs, 966.316µs, 1.114ms, 1.172ms, 1.319ms, 11.864ms
53+
Bytes In [total, mean] 5040000, 168.00
54+
Bytes Out [total, mean] 0, 0.00
55+
Success [ratio] 100.00%
56+
Status Codes [code:count] 200:30000
57+
Error Set:
58+
```
59+
60+
## Test4: Running tea GET method based routing
61+
62+
```text
63+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
64+
Duration [total, attack, wait] 30s, 29.999s, 853.087µs
65+
Latencies [min, mean, 50, 90, 95, 99, max] 702.09µs, 1.007ms, 976.392µs, 1.13ms, 1.188ms, 1.361ms, 27.968ms
66+
Bytes In [total, mean] 4710000, 157.00
67+
Bytes Out [total, mean] 0, 0.00
68+
Success [ratio] 100.00%
69+
Status Codes [code:count] 200:30000
70+
Error Set:
71+
```
72+
73+
## Test5: Running tea POST method based routing
74+
75+
```text
76+
Requests [total, rate, throughput] 30000, 1000.04, 1000.00
77+
Duration [total, attack, wait] 30s, 29.999s, 1.149ms
78+
Latencies [min, mean, 50, 90, 95, 99, max] 715.853µs, 989.369µs, 974.707µs, 1.127ms, 1.184ms, 1.355ms, 3.77ms
79+
Bytes In [total, mean] 4710000, 157.00
80+
Bytes Out [total, mean] 0, 0.00
81+
Success [ratio] 100.00%
82+
Status Codes [code:count] 200:30000
83+
Error Set:
84+
```
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Results
2+
3+
## Test environment
4+
5+
NGINX Plus: true
6+
7+
GKE Cluster:
8+
9+
- Node count: 12
10+
- k8s version: v1.28.9-gke.1000000
11+
- vCPUs per node: 16
12+
- RAM per node: 65855088Ki
13+
- Max pods per node: 110
14+
- Zone: us-east1-b
15+
- Instance Type: n2d-standard-16
16+
17+
## Summary
18+
19+
Similar results to last time.
20+
21+
## Test: Send https /tea traffic
22+
23+
```text
24+
Requests [total, rate, throughput] 6000, 100.02, 100.01
25+
Duration [total, attack, wait] 59.991s, 59.99s, 1.392ms
26+
Latencies [min, mean, 50, 90, 95, 99, max] 666.477µs, 1.359ms, 1.276ms, 1.74ms, 1.894ms, 2.331ms, 50.572ms
27+
Bytes In [total, mean] 924000, 154.00
28+
Bytes Out [total, mean] 0, 0.00
29+
Success [ratio] 100.00%
30+
Status Codes [code:count] 200:6000
31+
Error Set:
32+
```
33+
34+
![https-plus.png](https-plus.png)
35+
36+
## Test: Send http /coffee traffic
37+
38+
```text
39+
Requests [total, rate, throughput] 6000, 100.02, 100.01
40+
Duration [total, attack, wait] 59.991s, 59.99s, 1.589ms
41+
Latencies [min, mean, 50, 90, 95, 99, max] 886.813µs, 1.521ms, 1.464ms, 1.864ms, 2.029ms, 2.426ms, 13.752ms
42+
Bytes In [total, mean] 966000, 161.00
43+
Bytes Out [total, mean] 0, 0.00
44+
Success [ratio] 100.00%
45+
Status Codes [code:count] 200:6000
46+
Error Set:
47+
```
48+
49+
![http-plus.png](http-plus.png)
4.23 KB
Loading
4.23 KB
Loading
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
# Results
2+
3+
## Test environment
4+
5+
NGINX Plus: true
6+
7+
GKE Cluster:
8+
9+
- Node count: 12
10+
- k8s version: v1.28.9-gke.1000000
11+
- vCPUs per node: 16
12+
- RAM per node: 65855088Ki
13+
- Max pods per node: 110
14+
- Zone: us-east1-b
15+
- Instance Type: n2d-standard-16
16+
17+
## Summary
18+
19+
- New look since we are now auto-generating these results
20+
- Batch processing time has reduced
21+
- Reload time is similar (slightly worse in some cases)
22+
- Metrics (CPU, memory, TTR) all seem to be better, though this could be because of the automation instead of being a manual process.
23+
- Error logs:
24+
```couldn't update upstream via the API, reloading configuration instead","batchID":220,"upstreamName":"scale_backend_80","error":"failed to update servers of scale_backend_80 upstream: failed to add 10.104.3.63:8080 server to scale_backend_80 upstream: expected 201 response, got 500. error.status=500; error.text=upstream memory exhausted; error.code=UpstreamOutOfMemory;```
25+
```ngx_slab_alloc() failed: no memory in upstream zone "scale_backend_80"```
26+
27+
Seems that our zone size may not be big enough in N+.
28+
29+
## Test TestScale_Listeners
30+
31+
### Reloads
32+
33+
- Total: 128
34+
- Total Errors: 0
35+
- Average Time: 142ms
36+
- Reload distribution:
37+
- 500ms: 128
38+
- 1000ms: 128
39+
- 5000ms: 128
40+
- 10000ms: 128
41+
- 30000ms: 128
42+
- +Infms: 128
43+
44+
### Event Batch Processing
45+
46+
- Total: 387
47+
- Average Time: 122ms
48+
- Event Batch Processing distribution:
49+
- 500ms: 355
50+
- 1000ms: 386
51+
- 5000ms: 387
52+
- 10000ms: 387
53+
- 30000ms: 387
54+
- +Infms: 387
55+
56+
### Errors
57+
58+
- NGF errors: 0
59+
- NGF container restarts: 0
60+
- NGINX errors: 0
61+
- NGINX container restarts: 0
62+
63+
### Graphs and Logs
64+
65+
See [output directory](./TestScale_Listeners) for more details.
66+
The logs are attached only if there are errors.
67+
68+
## Test TestScale_HTTPSListeners
69+
70+
### Reloads
71+
72+
- Total: 127
73+
- Total Errors: 0
74+
- Average Time: 174ms
75+
- Reload distribution:
76+
- 500ms: 127
77+
- 1000ms: 127
78+
- 5000ms: 127
79+
- 10000ms: 127
80+
- 30000ms: 127
81+
- +Infms: 127
82+
83+
### Event Batch Processing
84+
85+
- Total: 450
86+
- Average Time: 120ms
87+
- Event Batch Processing distribution:
88+
- 500ms: 404
89+
- 1000ms: 450
90+
- 5000ms: 450
91+
- 10000ms: 450
92+
- 30000ms: 450
93+
- +Infms: 450
94+
95+
### Errors
96+
97+
- NGF errors: 0
98+
- NGF container restarts: 0
99+
- NGINX errors: 0
100+
- NGINX container restarts: 0
101+
102+
### Graphs and Logs
103+
104+
See [output directory](./TestScale_HTTPSListeners) for more details.
105+
The logs are attached only if there are errors.
106+
107+
## Test TestScale_HTTPRoutes
108+
109+
### Reloads
110+
111+
- Total: 1001
112+
- Total Errors: 0
113+
- Average Time: 375ms
114+
- Reload distribution:
115+
- 500ms: 740
116+
- 1000ms: 1001
117+
- 5000ms: 1001
118+
- 10000ms: 1001
119+
- 30000ms: 1001
120+
- +Infms: 1001
121+
122+
### Event Batch Processing
123+
124+
- Total: 1008
125+
- Average Time: 421ms
126+
- Event Batch Processing distribution:
127+
- 500ms: 647
128+
- 1000ms: 1008
129+
- 5000ms: 1008
130+
- 10000ms: 1008
131+
- 30000ms: 1008
132+
- +Infms: 1008
133+
134+
### Errors
135+
136+
- NGF errors: 0
137+
- NGF container restarts: 0
138+
- NGINX errors: 0
139+
- NGINX container restarts: 0
140+
141+
### Graphs and Logs
142+
143+
See [output directory](./TestScale_HTTPRoutes) for more details.
144+
The logs are attached only if there are errors.
145+
146+
## Test TestScale_UpstreamServers
147+
148+
### Reloads
149+
150+
- Total: 3
151+
- Total Errors: 0
152+
- Average Time: 125ms
153+
- Reload distribution:
154+
- 500ms: 3
155+
- 1000ms: 3
156+
- 5000ms: 3
157+
- 10000ms: 3
158+
- 30000ms: 3
159+
- +Infms: 3
160+
161+
### Event Batch Processing
162+
163+
- Total: 140
164+
- Average Time: 89ms
165+
- Event Batch Processing distribution:
166+
- 500ms: 140
167+
- 1000ms: 140
168+
- 5000ms: 140
169+
- 10000ms: 140
170+
- 30000ms: 140
171+
- +Infms: 140
172+
173+
### Errors
174+
175+
- NGF errors: 1
176+
- NGF container restarts: 0
177+
- NGINX errors: 2
178+
- NGINX container restarts: 0
179+
180+
### Graphs and Logs
181+
182+
See [output directory](./TestScale_UpstreamServers) for more details.
183+
The logs are attached only if there are errors.
184+
185+
## Test TestScale_HTTPMatches
186+
187+
```text
188+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
189+
Duration [total, attack, wait] 30s, 29.999s, 919.884µs
190+
Latencies [min, mean, 50, 90, 95, 99, max] 674.011µs, 963.958µs, 935.735µs, 1.089ms, 1.154ms, 1.339ms, 30.258ms
191+
Bytes In [total, mean] 4830000, 161.00
192+
Bytes Out [total, mean] 0, 0.00
193+
Success [ratio] 100.00%
194+
Status Codes [code:count] 200:30000
195+
Error Set:
196+
```
197+
```text
198+
Requests [total, rate, throughput] 30000, 1000.03, 1000.00
199+
Duration [total, attack, wait] 30s, 29.999s, 986.656µs
200+
Latencies [min, mean, 50, 90, 95, 99, max] 767.398µs, 1.038ms, 1.006ms, 1.145ms, 1.195ms, 1.347ms, 25.165ms
201+
Bytes In [total, mean] 4830000, 161.00
202+
Bytes Out [total, mean] 0, 0.00
203+
Success [ratio] 100.00%
204+
Status Codes [code:count] 200:30000
205+
Error Set:
206+
```
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)