Baseline

The primary throughput benchmark. Each connection sends one request at a time over persistent keep-alive connections.

Connections: 512, 4,096, 16,384 CPU limit: 64 threads (container limited to 64 CPU threads via --cpus=64)

Workload

A mix of three request types, rotated across connections:

  • GET /baseline11?a=13&b=42 — query parameter parsing, response: sum of values
  • POST /baseline11?a=13&b=42 with Content-Length body — query params + body parsing
  • POST /baseline11?a=13&b=42 with chunked Transfer-Encoding body — chunked decoding

This exercises the full HTTP handling path: request line parsing, header parsing, query string extraction, body reading (both Content-Length and chunked), integer arithmetic, and response serialization.

Expected request/response

GET — sum of query parameters:

GET /baseline11?a=13&b=42 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: text/plain

55

POST with body — sum of query parameters + body:

POST /baseline11?a=13&b=42 HTTP/1.1
Content-Type: text/plain
Content-Length: 2

20
HTTP/1.1 200 OK
Content-Type: text/plain

75

What it measures

  • Raw request throughput under ideal conditions
  • Full HTTP parsing pipeline performance
  • Keep-alive connection handling efficiency
  • How frameworks scale with increasing connection counts