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 build

This 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: rootroot

  • Secret Key: rootroot

  • Bucket: benchmark

  • Duration: 3 minutes

  • Host Example: http://127.0.0.1:3333

Test Commands

Each test measures performance under varying conditions of object size and concurrency.

PUT Tests

Description
Command

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

Description
Command

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

Description
Command

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

Description
Command

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

Description
Command

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