|
| 1 | +# Results |
| 2 | + |
| 3 | +## Test environment |
| 4 | + |
| 5 | +GKE cluster: |
| 6 | + |
| 7 | +- Node count: 3 |
| 8 | +- Instance Type: e2-medium |
| 9 | +- k8s version: 1.27.4-gke.900 |
| 10 | +- Zone: europe-west2-b |
| 11 | +- Total vCPUs: 6 |
| 12 | +- Total RAM: 12GB |
| 13 | +- Max pods per node: 110 |
| 14 | + |
| 15 | +Test VM: |
| 16 | + |
| 17 | +- Instance Type: e2-medium |
| 18 | +- Zone: europe-west2-b |
| 19 | +- vCPUS: 2 |
| 20 | +- RAM: 4GB |
| 21 | + |
| 22 | +NGF deployment: |
| 23 | + |
| 24 | +- NGF version: edge - git commit a41e9e46d72788bceea8ba44e01d4062afec75fd |
| 25 | +- NGINX Version: 1.25.2 |
| 26 | + |
| 27 | +## Test1: Running latte path based routing |
| 28 | + |
| 29 | +```console |
| 30 | +Running 30s test @ http://cafe.example.com/latte |
| 31 | + 2 threads and 10 connections |
| 32 | + Thread Stats Avg Stdev Max +/- Stdev |
| 33 | + Latency 6.29ms 7.85ms 182.06ms 88.67% |
| 34 | + Req/Sec 1.11k 588.11 2.31k 59.83% |
| 35 | + Latency Distribution |
| 36 | + 50% 3.44ms |
| 37 | + 75% 7.09ms |
| 38 | + 90% 15.33ms |
| 39 | + 99% 31.86ms |
| 40 | + 66017 requests in 30.02s, 23.42MB read |
| 41 | +Requests/sec: 2199.43 |
| 42 | +Transfer/sec: 799.00KB |
| 43 | +``` |
| 44 | + |
| 45 | +## Test2: Running coffee header based routing |
| 46 | + |
| 47 | +```console |
| 48 | +Running 30s test @ http://cafe.example.com/coffee |
| 49 | + 2 threads and 10 connections |
| 50 | + Thread Stats Avg Stdev Max +/- Stdev |
| 51 | + Latency 31.95ms 37.10ms 243.16ms 89.07% |
| 52 | + Req/Sec 224.25 238.65 1.83k 90.32% |
| 53 | + Latency Distribution |
| 54 | + 50% 14.31ms |
| 55 | + 75% 43.74ms |
| 56 | + 90% 76.70ms |
| 57 | + 99% 171.95ms |
| 58 | + 12913 requests in 30.03s, 4.59MB read |
| 59 | +Requests/sec: 430.05 |
| 60 | +Transfer/sec: 156.65KB |
| 61 | +``` |
| 62 | + |
| 63 | +## Test3: Running coffee query based routing |
| 64 | + |
| 65 | +```console |
| 66 | +Running 30s test @ http://cafe.example.com/coffee?TEST=v2 |
| 67 | + 2 threads and 10 connections |
| 68 | + Thread Stats Avg Stdev Max +/- Stdev |
| 69 | + Latency 29.26ms 43.85ms 457.05ms 82.26% |
| 70 | + Req/Sec 632.30 464.79 2.07k 60.43% |
| 71 | + Latency Distribution |
| 72 | + 50% 4.45ms |
| 73 | + 75% 45.84ms |
| 74 | + 90% 103.14ms |
| 75 | + 99% 145.53ms |
| 76 | + 37324 requests in 30.02s, 13.56MB read |
| 77 | +Requests/sec: 1243.13 |
| 78 | +Transfer/sec: 462.53KB |
| 79 | +``` |
| 80 | + |
| 81 | +## Test4: Running tea GET method based routing |
| 82 | + |
| 83 | +```console |
| 84 | +Running 30s test @ http://cafe.example.com/tea |
| 85 | + 2 threads and 10 connections |
| 86 | + Thread Stats Avg Stdev Max +/- Stdev |
| 87 | + Latency 27.19ms 39.40ms 182.48ms 81.49% |
| 88 | + Req/Sec 706.49 416.90 1.85k 65.42% |
| 89 | + Latency Distribution |
| 90 | + 50% 4.06ms |
| 91 | + 75% 42.24ms |
| 92 | + 90% 99.21ms |
| 93 | + 99% 133.34ms |
| 94 | + 41265 requests in 30.04s, 14.56MB read |
| 95 | +Requests/sec: 1373.59 |
| 96 | +Transfer/sec: 496.31KB |
| 97 | +``` |
| 98 | + |
| 99 | +## Test5: Running tea POST method based routing |
| 100 | + |
| 101 | +```console |
| 102 | +Running 30s test @ http://cafe.example.com/tea |
| 103 | + 2 threads and 10 connections |
| 104 | + Thread Stats Avg Stdev Max +/- Stdev |
| 105 | + Latency 27.32ms 39.49ms 208.66ms 81.40% |
| 106 | + Req/Sec 685.47 491.33 2.08k 58.43% |
| 107 | + Latency Distribution |
| 108 | + 50% 4.19ms |
| 109 | + 75% 42.40ms |
| 110 | + 90% 99.38ms |
| 111 | + 99% 133.25ms |
| 112 | + 40723 requests in 30.03s, 14.37MB read |
| 113 | +Requests/sec: 1356.10 |
| 114 | +Transfer/sec: 489.99KB |
| 115 | +``` |
| 116 | + |
| 117 | +## Observations |
| 118 | + |
| 119 | +- Path based routing is the most performant of the routing methods |
| 120 | +- The njs based methods are less performant: |
| 121 | + - Header based routing is the least performant of the routing methods, by a factor of roughly 5 compared to the path |
| 122 | + based routing. |
| 123 | + - The query and method based routing methods are approximately 2/3s as performant as the path based routing. |
0 commit comments