|
| 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**: . |
| 81 | + |
| 82 | +**Memory**: . |
| 83 | + |
| 84 | +**Time To Ready**: . |
| 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**: . |
| 109 | + |
| 110 | +**Memory**: . |
| 111 | + |
| 112 | +**Time To Ready**: . |
| 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 | +. |
| 142 | + |
| 143 | +No delay: |
| 144 | +. |
| 145 | + |
| 146 | +**Memory**: |
| 147 | + |
| 148 | +2-sec delay: |
| 149 | +. |
| 150 | + |
| 151 | +No delay: |
| 152 | +. |
| 153 | + |
| 154 | +**TTR**: |
| 155 | + |
| 156 | +Combined: |
| 157 | + |
| 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**: . |
| 184 | + |
| 185 | +**Memory**: . |
| 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. |
0 commit comments