Surefold

Benchmarks

Petshop, ramped to 50,000 requests a second.

One Proofload run against the petshop demo, second by second. It ramps from 100 to 50,000 arrivals a second over a minute, then holds there for a minute. Hover any chart to read every series at that second.

How to read it. Arrivals are open model: each departs on schedule whether or not earlier ones were answered. Proofload lets at most be in flight. An arrival due while that many are waiting is refused by the generator: never sent, and counted apart from the shop's failures. So a refusal is the test running out of room, not the shop saying no.

Requests a second

What the schedule asked for, what the shop answered, and what the generator had to refuse.

Latency

Median and 99th percentile service time of the requests answered in each second, in milliseconds.

In flight

Requests sent and not yet answered at the end of each second, against the generator's cap.

Every second as a table
SecondAskedAnsweredRefusedFailedp50 msp99 msIn flight

The run

Recorded
Scenario
74% GET /pets/{id}, 25% GET /pets, 1% POST /pets/{id}/adoption
Profile
Ramp 100 to 50,000 a second over 60 s, hold 60 s
Machine
One laptop running the shop, Postgres and the load generator together
Source
HeavyTraffic.kt and the write-up