| proxy | max sustained req/s | p50 @ 2k | p99 @ 2k | peak mem | status |
|---|---|---|---|---|---|
| envoy— | 4.313k | 1.63ms | 32.68ms | 206.6MiB | ok |
| zoxy0.9.0 @935a2f349 | 4.3091k | 1.40ms | 5.67ms | 252.5MiB | ok |
| haproxy3.4.6 | 4.276k | 1.46ms | 9.39ms | 168.9MiB | ok |
| pingora0.8 | 3.9269k | 1.53ms | 5.32ms | 176.8MiB | ok |
| nginx1.31 | 3.764k | 1.58ms | 8.28ms | 121.4MiB | ok |
open-loop ramp; dashed gray = perfect keep-up
container cores sampled from cAdvisor at 1Hz, on the ramp's own clock
per-window tail (log scale); each line stops where that proxy stops keeping up
offered load the proxy couldn't serve (1 − achieved/offered); the first few seconds include the generator's own ramp-up shortfall, which is not the proxy's
latency by percentile · saturated at 60s — tail percentiles are a floor, not a value · raw zoxy.hgrm
latency by percentile · saturated at 60s — tail percentiles are a floor, not a value · raw haproxy.hgrm
latency by percentile · saturated at 60s — tail percentiles are a floor, not a value · raw nginx.hgrm
latency by percentile · saturated at 60s — tail percentiles are a floor, not a value · raw pingora.hgrm
latency by percentile · saturated at 60s — tail percentiles are a floor, not a value · raw envoy.hgrm