ZS3Server Warp Benchmark Testing
This document outlines the performance benchmarking process for ZS3Server using Warp, a powerful S3 benchmarking tool. These tests were run against a ZS3 deployment launched via Blimp as per ZS3 Deployment Instructions.
Setup Instructions
1. Deploy ZS3Server
Ensure your ZS3Server is deployed and running. Follow the deployment guide using Blimp.
2. Build Warp Binary
Clone the Warp repository:
git clone https://github.com/minio/warp.git
cd warp
go buildThis will generate the warp binary in your local directory.
3. Run Benchmark Tests
All benchmark tests are executed against the <zs3server-ip:port> using the following credentials:
Access Key:
rootrootSecret Key:
rootrootBucket:
benchmarkDuration:
3 minutesHost Example:
http://127.0.0.1:3333
Test Commands
Each test measures performance under varying conditions of object size and concurrency.
PUT Tests
100MB, concurrency 16
./warp put --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 100MB
1KB, concurrency 180
./warp put --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 180 --obj.size 1KB
1KB, concurrency 16
./warp put --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 1KB
1KB, concurrency 400
./warp put --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 400 --obj.size 1KB
GET Tests
100MB, concurrency 16
./warp get --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 100MB --objects 500
1KB, concurrency 180
./warp get --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 180 --obj.size 1KB --objects 50000
4000MB, 1 object, concurrency 16
./warp get --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 4000MB --objects 1
1KB, concurrency 16
./warp get --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 1KB --objects 100000
1KB, concurrency 400
./warp get --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 400 --obj.size 1KB --objects 100000
MIXED Tests
100MB, concurrency 16
./warp mixed --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 100MB --objects 250
1KB, concurrency 16
./warp mixed --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 1KB --objects 50000
LIST Tests
100MB, concurrency 180
./warp list --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 180 --obj.size 1KB --objects 1000
1KB, concurrency 16
./warp list --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 1KB --objects 100000
1KB, concurrency 400
./warp list --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 400 --obj.size 1KB --objects 100000
DELETE Tests
1KB, concurrency 120
./warp delete --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 120 --obj.size 1KB --objects 48000
1KB, concurrency 400
./warp delete --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 400 --obj.size 1KB --objects 100000
1KB, concurrency 16
./warp delete --host <zs3server-ip:port> --access-key rootroot --secret-key rootroot --bucket benchmark --duration 3m --concurrent 16 --obj.size 1KB --objects 100000
After running each test, save the output (preferably in JSON or CSV) for future comparison and trends. You can also generate graphs for:
Throughput (ops/sec)
Latency (min, max, avg)
Error rates
Last updated