Petshop benchmark recording
Petshop, ramped to 50,000 requests a second.
One Proofload run against the petshop demo, second by second. The schedule 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, or open the data table below. This run refused arrivals and does not establish sustained capacity.
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
| Second | Asked | Answered | Refused | Failed | p50 ms | p99 ms | In 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
- Environment
- Shop, Postgres and generator shared one laptop. The supplied recording does not include its exact CPU, OS, JVM flags or library revisions.
- Baseline
- No comparison baseline or repeated runs are included in this recording.
- Measurement
- The chart shows service time from send to response, not response time including departure lateness. Per-second p99 values are not a whole-run p99.
- Write workload
- The catalogue is finite; the mixed workload is not a sustained database-write benchmark. The linked write-up explains the adoption workload.
- Raw data
- Download the recorded series (JSON). Scheduled rates in the ramp are point values; answered counts cover a second, so they can exceed the displayed rate.
- Source
- HeavyTraffic.kt and the write-up of related runs. Those runs are not identified as this recording