Skip to main content
Use this to produce rows for Load and failover benchmarks. The script never creates or deletes servers; you do that by hand.

Rules

  • Publish only rows with a date and a hardware label. Anything unmeasured stays marked not yet measured.
  • Rows with client_saturated above zero are invalid. Rerun with a bigger load generator.
  • Never mix laptop and server numbers in one table. Say what each row ran on.
  • Keep the raw JSON in docs/benchmark-results/ next to the table.

Provision by hand

  • Server: one Linux VPS, a size you will name in the row (for example 4 vCPU, 8 GB). Install Levelrail with install.sh, then deploy the fixture app with 2 replicas behind the load balancer with a domain.
  • Load generator: a second VPS in the same region and network segment, never the server itself. 4 vCPU or more.
  • For a node drain row, add a second node to the server’s placement (see Add a node).
  • Build the fixture on the server: docker build -t bench-app test/fixtures/bench-app.
  • Make a note of the network between the two machines (region, private or public).
  • Create an API token on the server for the load generator.
  • Destroy both machines when done; billing is on you.

Run

On the load generator, with levelrail-cli installed and jq available:
Optional: BENCH_DRAIN_NODE and BENCH_DRAIN_TARGET (node drain), BENCH_RATES, BENCH_DURATION, BENCH_NOTE (for example 2 nodes, same region, private network), --skip steady,replica-kill,node-drain,cp-restart.

Scenarios

Publish

  • The script writes docs/benchmark-results/<date>-vps-*.json and <date>-vps-fragment.md. The hardware line comes from lscpu, free, uname and docker version on the server.
  • Check the fragment: saturated is 0, hardware line is complete, date is today.
  • Paste the fragment under “Results” in docs/benchmarks.md and update the matching rows in the scenario status table. Rows you did not run keep their not yet measured status.
  • Add the load generator size and network note to the paragraph above the table.
Last modified on October 24, 2026