Benchmarks Caching proxies
Candidates
HTTP caching proxies for HLS delivery
Tick the candidates you care about and the charts, winners and table redraw for just them: same run, same rig, same samples. Winners come from the numbers alone; the story is in the post.
Hit-path TTFB at 5000 rps
Test 1 p50 TTFB
50th-percentile time to first byte at 5000 rps (LOWER ms = FASTER)
Test 2 p99 TTFB
99th-percentile time to first byte at 5000 rps (LOWER ms = FASTER)
Winner Vinyl c67fd5f57 (plaintext) (2.2 ms)
4 MB segment serve
Test 1 p50 full GET
50th-percentile TTFB for 4 MB full GET at 500 rps (LOWER ms = FASTER)
Test 2 p50 range GET
50th-percentile TTFB for 64 KB range GET at 500 rps (LOWER ms = FASTER)
Test 3 p99 full GET
99th-percentile TTFB for 4 MB full GET at 500 rps (LOWER ms = FASTER)
Test 4 p99 range GET
99th-percentile TTFB for 64 KB range GET at 500 rps (LOWER ms = FASTER)
Winner Varnish 9.0.3 (plaintext) (3.1 ms)
Miss-storm coalescing
Test 1 p50 TTFB
50th-percentile TTFB per 200-client burst on a cold segment (LOWER ms = FASTER)
Test 2 p99 TTFB
99th-percentile TTFB per 200-client burst on a cold segment (LOWER ms = FASTER)
Test 3 Coalescing efficiency
Ratio of concurrent clients to origin requests (200x = perfect coalescing) (HIGHER x = BETTER)
Winner Vinyl c67fd5f57 (plaintext) (703.7 ms)
Origin-flap grace
Test 1 p50 TTFB
50th-percentile TTFB during origin failure cycles (LOWER ms = FASTER)
Test 2 Grace hit ratio
Percentage of requests served from stale cache during origin failure (HIGHER % = BETTER)
Winner NGINX stable (plaintext) (5.9 ms)
Test conditions: rig, corpus, protocol
- Machine
- MacBook Pro
- Chip
- Apple M2 Max
- Cores
- 12 CPU cores
- Memory
- 96 GB
- OS
- macOS 26.0 (arm64)
- Runtime
- Docker (OrbStack)
- Warmups
- 3 unmeasured passes
- Measured
- 20 passes per tool
- Process
- Container per engine, shared origin
- Cache
- Warm cache after three curl requests (W1/W2) or cold by construction (W3)
- Output
- TTFB via oha 1.16.0 with --latency-correction
Scorecard
| Candidate | Hit-path TTFB at 5000 rps (ms, lower is better) | 4 MB segment serve (ms, lower is better) | Miss-storm coalescing (ms, lower is better) | Origin-flap grace (ms, lower is better) |
|---|---|---|---|---|
| Varnish 9.0.3 (plaintext) | 3.4 ms | 3.1 ms | 830.5 ms | 6.2 ms |
| Varnish 9.0.3 (TLS) | 3.7 ms | 10.9 ms | – | – |
| Varnish 9.0.3 (PROXYv2) | 5.8 ms | 20.3 ms | – | – |
| Vinyl c67fd5f57 (plaintext) | 2.2 ms | 3.4 ms | 703.7 ms | 6.0 ms |
| Vinyl c67fd5f57 (PROXYv2) | 5.7 ms | 39.5 ms | – | – |
| NGINX stable (plaintext) | 2.6 ms | 6.5 ms | 986.6 ms | 5.9 ms |
| NGINX stable (TLS) | 3.5 ms | 67.2 ms | – | – |
| NGINX stable (PROXYv2) | 3.2 ms | 15.9 ms | – | – |
Logos identify the products under test and imply no endorsement. Varnish is a registered trademark of Varnish Software AB. NGINX is a trademark of F5, Inc. Vinyl Cache logo: CC BY 4.0 Rhubarbe.design.