Object Storage Benchmarks
Storage Benchmarks
Upload/download latency and throughput benchmarks for object storage providers. 10 MB file size, 100 iterations.
Powered byPerformance Over Time
Composite Score
Detailed Metrics
Provider | Score | Upload (med) | Download (med) | Throughput (med) | Success |
|---|---|---|---|---|---|
| Azure Blob | 98.0 | 145ms | 118ms | 713 Mbps | 100% |
| AWS S3 | 96.2 | 647ms | 145ms | 578 Mbps | 100% |
| Tigris | 96.1 | 352ms | 187ms | 449 Mbps | 100% |
| Archil | 95.9 | 413ms | 201ms | 418 Mbps | 100% |
| Tensorlake | 95.6 | 295ms | 143ms | 585 Mbps | 99% |
| Mosaic | 95.5 | 561ms | 204ms | 411 Mbps | 100% |
| Cloudflare R2 | 94.5 | 959ms | 260ms | 322 Mbps | 100% |
| Vercel Blob | 93.5 | 273ms | 748ms | 112 Mbps | 100% |
| Neon | 93.4 | 892ms | 322ms | 261 Mbps | 100% |
Want to see a provider added?
Methodology
What We Measure
The benchmark uploads and then downloads files of configurable size (1 MB, 4 MB, 10 MB, and 16 MB) to a bucket in each provider, measuring the time for each operation independently. This page displays the 10 MB results.
Three metrics are captured per iteration: upload latency, download latency, and throughput (Mbps, computed from download timing).
Each provider is tested with 100 iterations per run. Benchmarks run automatically via GitHub Actions on a recurring schedule. All results are committed to the public benchmarks repo.
How We Score
The Composite Score is a weighted blend of upload and download latency metrics plus throughput, multiplied by the success rate. Latency is scored against a fixed 30-second ceiling: 100 × (1 − value / 30,000ms); throughput is scored on a 1–1000 Mbps scale.
The weighted score is multiplied by the success rate (0–1), so providers that fail frequently are penalized proportionally.
- • Download median: 35%
- • Download P95: 15%
- • Download P99: 5%
- • Upload median: 25%
- • Upload P95: 10%
- • Upload P99: 5%
- • Throughput: 5%