warp CLI

This section provides comprehensive reference documentation for the warp command-line interface.

Warp is MinIO’s S3 benchmarking tool designed to measure and analyze object storage performance. The tool generates realistic workloads and provides detailed performance metrics for S3-compatible storage systems.

Use this reference to understand all available flags and commands. For installation instructions, see the Installation section. For practical guidance on running benchmarks, see the Administration section. Each command listed below has its own detailed documentation page with examples and use cases.

Command structure

warp COMMAND [FLAGS] [COMMAND FLAGS]

The warp command accepts a command name, followed by global flags, followed by command-specific flags. Most flags can be set via environment variables for convenience in scripted environments.

Basic examples

Run a simple PUT benchmark against an S3-compatible storage system:

warp put --host myaistor.example.com:9000 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Connect to multiple Warp clients for distributed load generation:

warp mixed --warp-client client1:7761,client2:7761,client3:7761 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Benchmark with specific object size distribution:

warp put --obj.size 1MB,10MB,100MB --obj.randsize --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Commands

Benchmark commands

Command Tests
append S3 Express append operations
delete Delete operations
fanout Single object to multiple copies
get Download performance
list List operations
mixed Mixed operations (GET, PUT, DELETE, STAT)
multipart Multipart upload and download
multipart-put Multipart upload only
put Upload performance
retention Object retention and legal hold
snowball TAR file extraction
stat Stat operations
versioned Versioned object operations
zip ZIP file operations (MinIO s3zip extension)

Utility commands

Command Purpose
analyze Analyze existing benchmark data
client Start warp client for distributed benchmarking
cmp Compare two benchmark runs
merge Merge multiple benchmark runs
run Execute benchmark from YAML configuration

Common flags

These flags apply to most warp commands. Command-specific flags are documented on individual command pages.

Global flags

Flag Description
--autocompletion Install shell auto-completion
--debug Enable debug output
--help, -h Show help
--insecure Disable TLS certificate verification
--no-color Disable colored output
--version, -v Print the version

Connection flags

Flag Description Environment Variable
--access-key S3 access key WARP_ACCESS_KEY
--bucket Bucket for benchmark data (all data will be deleted) (default: “warp-benchmark-bucket”)
--host S3 endpoint to connect to (supports multiple as comma-separated list) (default: “127.0.0.1:9000”) WARP_HOST
--host-select Host selection algorithm: “weighed” or “roundrobin” (default: “weighed”)
--ktls Use Kernel TLS (HTTPS) if available WARP_KTLS
--lookup Force ‘host’ for host-style or ‘path’ for path-style lookup (autodetect by default)
--region S3 region WARP_REGION
--secret-key S3 secret key WARP_SECRET_KEY
--session-token Session token for temporary credentials WARP_SESSION_TOKEN
--tls Use TLS (HTTPS) for transport WARP_TLS

For complete environment variable documentation including usage examples, see the Environment Variables Reference.

Performance and concurrency flags

Flag Description
--concurrent Concurrent operations per warp client (default: 20)
--rps-limit Rate limit per instance in requests per second (0 to disable) (default: 0)

Object and data flags

Flag Description
--noprefix Do not use separate prefix for each thread
--obj.generator Data generator to use (default: “random”)
--obj.randsize Randomize object sizes up to specified size
--obj.size Size of generated objects (number or 10KiB/MiB/GiB, base 2 binary)
--prefix Custom prefix for each thread

Upload and encryption flags

Flag Description
--checksum Add checksum to uploaded objects: CRC64NVME, CRC32[-FO], CRC32C[-FO], SHA1, or SHA256 (requires server trailing headers)
--disable-multipart Disable multipart uploads
--disable-sha256-payload Disable calculating sha256 on client side
--encrypt Server-side encrypt/decrypt objects using random keys
--md5 Add MD5 sum to uploads
--sse-s3-encrypt Server-side SSE-S3 encrypt/decrypt objects
--storage-class Custom storage class (for example, ‘STANDARD’ or ‘REDUCED_REDUNDANCY’)

Benchmark control flags

Flag Description
--autoterm Automatically terminate when benchmark stabilizes
--autoterm.dur Minimum stable duration before auto-termination (default: 15s)
--autoterm.pct Percentage threshold for stability detection (default: 7.5)
--benchdata Output file for benchmark and profile data (generates unique filename by default)
--duration Benchmark duration (use ’s’ and ’m’ for seconds and minutes) (default: 5m0s)
--noclear Do not clear bucket before or after benchmarks (use for multiple clients)
--serverprof MinIO server profiling type: ‘cpu’, ‘mem’, ‘block’, ‘mutex’, or ’trace’
--stress Stress test mode (discard output)
--syncstart Benchmark start time in ‘hh:mm’ format (24h, server timezone)
--warp-client Connect to warp clients for distributed benchmarking

Analysis flags

Flag Description
--analyze.dur Split analysis into durations (for example, ‘1s’, ‘5s’, ‘1m’)
--analyze.host Filter output by host
--analyze.op Filter output by operation type (GET, PUT, DELETE, etc.)
--analyze.out Output aggregated data to file
--analyze.skip Additional duration to skip when analyzing (default: 0s)
--analyze.v Display additional analysis data
--full Record full analysis data with every request (default aggregates)

Monitoring and output flags

Flag Description Environment Variable
--influxdb Send operations to InfluxDB: ‘http://@:// WARP_INFLUXDB_CONNECT
--serve Open webserver to fetch results remotely (for example, localhost:7762)