nginx
Infrastructure · C
Nginx with a custom C handler module, compiled with -O3 -march=native. The module answers /baseline11, /baseline2 and /json/{count}, serializing the JSON body per request from the dataset parsed at worker startup; /static/* is served by nginx core's sendfile path. TLS via quictls: HTTP/1.1 on :8081, h2 and h3 on :8443.
Composite rank
Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.
| Family | Rank | Composite |
|---|---|---|
| HTTP/1.1 | 1 of 4 | 678 |
| HTTP/2 | 2 of 4 | 122 |
| HTTP/3 | 1 of 2 | 200 |
Every result
Alpha Round, 20 runs. Requests per second is the best of three; latency, CPU and memory come from that run.
| Category | Profile | Conns | Req/sec | Avg | p99 | CPU | Memory |
|---|---|---|---|---|---|---|---|
| Connection | Baseline | 512 | 3,065,381 | 166us | 2.22ms | 6613.0% | 3.5GiB |
| Connection | Baseline | 4,096 | 3,346,698 | 1.22ms | 6.77ms | 6443.6% | 3.5GiB |
| Connection | Pipelined | 512 | 4,111,715 | 1.99ms | 8.32ms | 6586.6% | 3.5GiB |
| Connection | Pipelined | 4,096 | 4,073,673 | 16.07ms | 35.40ms | 6400.0% | 3.5GiB |
| Connection | Short-lived | 512 | 2,279,316 | 210us | 1.37ms | 6281.3% | 3.5GiB |
| Connection | Short-lived | 4,096 | 2,635,762 | 1.51ms | 6.73ms | 6371.8% | 3.5GiB |
| Workload | JSON | 4,096 | 1,810,041 | 1.73ms | 8.73ms | 6472.8% | 3.5GiB |
| Workload | JSON TLS | 4,096 | 1,430,125 | 3.04ms | 53.50ms | 6426.1% | 3.6GiB |
| Workload | Static | 1,024 | 1,144,503 | 1.41ms | 31.18ms | 6615.8% | 3.5GiB |
| Workload | Static | 4,096 | 1,141,713 | 3.70ms | 29.67ms | 6546.7% | 3.5GiB |
| Workload | Static | 6,800 | 1,155,130 | 5.95ms | 32.24ms | 6443.7% | 3.5GiB |
| Workload | Static TLS | 1,024 | 749,207 | 1.82ms | 41.38ms | 6588.4% | 3.5GiB |
| Workload | Static TLS | 4,096 | 729,083 | 5.68ms | 86.98ms | 6557.0% | 3.6GiB |
| Workload | Static TLS | 6,800 | 696,555 | 9.90ms | 165.70ms | 6428.5% | 3.7GiB |
| HTTP/2 | Baseline | 256 | 3,509,929 | 6.00ms | 46.41ms | 6442.2% | 3.5GiB |
| HTTP/2 | Baseline | 1,024 | 3,422,284 | 26.67ms | 149.24ms | 6294.6% | 3.5GiB |
| HTTP/2 | Static | 256 | 820,230 | 10.29ms | 57.92ms | 6598.5% | 3.5GiB |
| HTTP/2 | Static | 1,024 | 812,796 | 38.69ms | 188.44ms | 6336.7% | 3.5GiB |
| HTTP/3 | Baseline | 64 | 4,916,244 | 818us | 1.48ms | 3047.7% | 3.5GiB |
| HTTP/3 | Static | 64 | 382,397 | 11.28ms | 35.79ms | 5330.2% | 3.6GiB |
How the benchmark is run · The machine · Add or fix an entry