Load test report
- Config: backend on one host with 4 uvicorn workers + local Postgres 16 · 48 client workers
· 60 simulated devices · 12s. (
scripts/loadtest.py) - Requests: 3182 (3182 accepted, 0 errors)
- Throughput: 263 telemetry/s sustained
- Fleet supported at the 15s telemetry interval: ~3,942 buildings
- Latency: p50 152 ms · p95 360 ms · p99 682 ms
- Error rate: 0.00%
SLO (p95 < 500 ms, errors < 1%)
Section titled “SLO (p95 < 500 ms, errors < 1%)”PASS — sustains the “thousands of buildings” target on a single 4-worker host.
For reference, a single worker tops out around ~110 telemetry/s with p95 ~570 ms (SLO fail) —
i.e. throughput + p95 improve with worker/replica count, as expected for the stateless API.
Production scales horizontally behind a load balancer with managed Postgres; partitioning +
downsampling (below) keep the telemetry table fast at scale. See docs/scaling.md._