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

CommandTests
appendS3 Express append operations
deleteDelete operations
fanoutSingle object to multiple copies
getDownload performance
listList operations
mixedMixed operations (GET, PUT, DELETE, STAT)
multipartMultipart upload and download
multipart-putMultipart upload only
putUpload performance
retentionObject retention
snowballTAR file extraction
statStat operations
versionedVersioned object operations
zipZIP file operations (MinIO s3zip extension)

Utility commands

CommandPurpose
analyzeAnalyze existing benchmark data
clientStart warp client for distributed benchmarking
cmpCompare two benchmark runs
mergeMerge multiple benchmark runs
runExecute benchmark from YAML configuration

Common flags

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

Global flags

FlagDescription
--autocompletionInstall shell auto-completion
--debugEnable debug output
--help, -hShow help
--insecureDisable TLS certificate verification
--no-colorDisable colored output
--version, -vPrint the version

Connection flags

FlagDescriptionEnvironment Variable
--access-keyS3 access keyWARP_ACCESS_KEY
--bucketBucket for benchmark data (all data will be deleted) (default: “warp-benchmark-bucket”)
--hostS3 endpoint to connect to (supports multiple as comma-separated list) (default: “127.0.0.1:9000”)WARP_HOST
--host-selectHost selection algorithm: “weighed” or “roundrobin” (default: “weighed”)
--ktlsUse Kernel TLS (HTTPS) if availableWARP_KTLS
--lookupForce ‘host’ for host-style or ‘path’ for path-style lookup (autodetect by default)
--regionS3 regionWARP_REGION
--secret-keyS3 secret keyWARP_SECRET_KEY
--session-tokenSession token for temporary credentialsWARP_SESSION_TOKEN
--sts-web-tokenToken Warp presents when it authenticates with STS (Security Token Service) web identity credentials (prefix the value with ‘file:’ to load the token from a file). Requires --signature STS_WEB_TOKENWARP_STS_WEB_TOKEN
--tlsUse TLS (HTTPS) for transportWARP_TLS

Warp signs requests with AWS Signature Version 4 unless you tell it otherwise, so --sts-web-token has no effect on its own. To authenticate with an STS web identity token, pass both flags:

warp get --sts-web-token file:/path/to/token --signature STS_WEB_TOKEN

Set --signature to one of S3V2, S3V4, IAM, or STS_WEB_TOKEN.

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

Performance and concurrency flags

FlagDescription
--concurrentConcurrent operations per warp client (default: 20)
--rps-limitRate limit per instance in requests per second (0 to disable) (default: 0)

Object and data flags

FlagDescription
--noprefixDo not use separate prefix for each thread
--obj.generatorData generator to use (default: “random”)
--obj.randsizeRandomize object sizes up to specified size
--obj.sizeSize of generated objects (number or 10KiB/MiB/GiB, base 2 binary)
--prefixCustom prefix for each thread

Upload and encryption flags

FlagDescription
--checksumAdd checksum to uploaded objects: CRC64NVME, CRC32[-FO], CRC32C[-FO], SHA1, or SHA256 (requires server trailing headers)
--disable-multipartDisable multipart uploads
--disable-sha256-payloadDisable calculating sha256 on client side
--encryptServer-side encrypt/decrypt objects using random keys
--md5Add MD5 sum to uploads
--sse-s3-encryptServer-side SSE-S3 encrypt/decrypt objects
--storage-classCustom storage class (for example, ‘STANDARD’ or ‘REDUCED_REDUNDANCY’)

Benchmark control flags

FlagDescription
--autotermAutomatically terminate when benchmark stabilizes
--autoterm.durMinimum stable duration before auto-termination (default: 15s)
--autoterm.pctPercentage threshold for stability detection (default: 7.5)
--benchdataOutput file for benchmark and profile data (generates unique filename by default)
--durationBenchmark duration (use ’s’ and ’m’ for seconds and minutes) (default: 5m0s)
--noclearDo not clear bucket before or after benchmarks (use for multiple clients)
--serverprofMinIO server profiling type: ‘cpu’, ‘mem’, ‘block’, ‘mutex’, or ’trace’
--stressStress test mode (discard output)
--syncstartBenchmark start time in ‘hh:mm’ format (24h, server timezone)
--warp-clientConnect to warp clients for distributed benchmarking

Analysis flags

FlagDescription
--analyze.durSplit analysis into durations (for example, ‘1s’, ‘5s’, ‘1m’)
--analyze.hostFilter output by host
--analyze.opFilter output by operation type (GET, PUT, DELETE, etc.)
--analyze.outOutput aggregated data to file
--analyze.skipAdditional duration to skip when analyzing (default: 0s)
--analyze.vDisplay additional analysis data
--fullRecord full analysis data with every request (default aggregates)

Monitoring and output flags

FlagDescriptionEnvironment Variable
--influxdbSend operations to InfluxDB: ‘http://@://’WARP_INFLUXDB_CONNECT
--serveOpen webserver to fetch results remotely (for example, localhost:7762)
--webOpen a web UI on the local machine to visualize results

On this page