MinIO Warp is an open-source tool for testing storage performance. It allows you to plan capacity and make sure the infrastructure meets requirements.
After MinIO’s migration to Hugo for documentation, I went about the task of adding documentation for Warp that previously only existed in the upstream code repositories.
This particular document covers two types of tests Warp provides. I put it together using some existing documentation and code examples in the repository combined with a deep dive analysis of the code using Claude, a review by a MinIO team member that uses the product regularly during support calls, and my own testing.
Warp offers different test types to evaluate specific aspects of storage performance. Choose the test type that matches what you want to measure.
- Single operation tests are useful to measure specific hardware capabilities or troubleshooting performance issues.
- Mixed workload tests evaluate overall application performance or capacity planning.
Single operation tests
Single operation tests focus on one type of storage operation at a time. These tests help you understand baseline performance for specific workloads.
The table below lists common test types.
| Test type | Measures | Use case |
|---|---|---|
PUT | Upload performance | Backup systems, data ingestion workflows |
GET | Download performance | Content delivery, data retrieval scenarios |
DELETE | Cleanup performance | Lifecycle management operations |
LIST | Directory browsing performance | File management applications |
# Test upload performance
warp put --duration 5m --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
# Test download performance
warp get --duration 5m --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
# Test object listing
warp list --duration 5m --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
For a complete list of available test types, see benchmarks.
Mixed workload tests
Mixed workload tests combine multiple operation types to simulate real application behavior. Most production applications perform a mix of reads, writes, and metadata operations.
Configure the operation distribution to match your application patterns.
A read-heavy application might use 70% GET operations, 20% STAT operations, and 10% PUT operations.
A write-heavy backup application might reverse this distribution.
# Read-heavy workload
warp mixed --get-distrib 70 --stat-distrib 20 --put-distrib 10 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
# Write-heavy workload
warp mixed --get-distrib 20 --stat-distrib 10 --put-distrib 70 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY