warp get
Test object download performance to measure S3 GET operation throughput and latency.
Synopsis
Flags
--objects
Default: 2500
Number of objects to upload before starting the download benchmark. The command creates this many objects during the preparation phase. Use this flag to test download performance with different object counts.
Example:
warp get --host myaistor.example.com:9000 --objects 5000 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--obj.size
Default: 10MiB
Size of each object created during the preparation phase. The object size directly affects download throughput and latency. Use this flag to test download behavior with different object sizes.
Valid formats include numbers or values with KiB, MiB, or GiB suffixes (base 2 binary).
Example:
warp get --host myaistor.example.com:9000 --obj.size 100MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--range
Default: false
Perform ranged GET operations with random offsets and lengths. The default behavior downloads complete objects. Use this flag to test partial object retrieval performance.
The command generates random byte ranges within each object for each request.
Example:
warp get --host myaistor.example.com:9000 --range --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--range-size
Default: not set
Use a fixed range size with random offsets for ranged GET operations. This flag automatically enables ranged operations. Use this flag to test consistent partial read sizes.
Valid formats include numbers or values with KiB, MiB, or GiB suffixes (base 2 binary).
Example:
warp get --host myaistor.example.com:9000 --range-size 1MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--versions
Default: 1
Number of versions to create for each object. When set to more than 1, the benchmark tests versioned object retrieval. Use this flag to test download performance with object versioning enabled.
Example:
warp get --host myaistor.example.com:9000 --versions 5 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--list-existing
Default: false
Use existing objects in the bucket instead of uploading new objects. The default behavior uploads objects before measuring download performance. Use this flag to test download speed on pre-existing data without preparation overhead.
Example:
warp get --host myaistor.example.com:9000 --list-existing --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--list-flat
Default: false
Use non-recursive listing when discovering existing objects.
The default behavior uses recursive listing to find objects with prefixes.
Use this flag with --list-existing when objects exist in a flat structure without prefixes.
This flag only applies when --list-existing is enabled.
Example:
warp get --host myaistor.example.com:9000 --list-existing --list-flat --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Global flags
This command supports all common flags including connection, performance, object, upload, benchmark control, analysis, and monitoring flags.
Benchmark behavior
The get benchmark operates in two phases unless you use the --list-existing flag.
During the preparation phase, the command uploads the specified number of objects to the target bucket. The upload phase creates objects with the specified size to ensure consistent test data exists. Object names use random prefixes to distribute objects across the storage system. When versioning is enabled, the command creates multiple versions of each object.
During the download phase, the command retrieves objects using S3 GET operations. The benchmark randomly selects objects from the prepared set for each download request. When range operations are enabled, the command requests random byte ranges from objects. The benchmark continues downloading objects throughout the specified duration.
The command measures download throughput, latency, and error rates. Download performance depends on object size, network bandwidth, and storage system capabilities. First-byte latency metrics show how quickly the storage system begins responding to requests.
Output
The get benchmark provides metrics for object download operations.
The output includes download throughput measured in MB/s showing data transfer rates. Operations per second display how many GET requests the system can handle. Latency percentiles show response times at p50, p90, p99, and p99.9 levels for download operations.
The benchmark reports first-byte latency showing time to first response byte. Error rates display counts and percentages of failed GET operations. Total object counts show how many downloads were successfully completed during the test.
For ranged GET operations, the output includes range-specific performance metrics. Versioned benchmarks show performance characteristics when retrieving specific object versions.
Examples
Basic download test
Test download performance with default settings:
warp get --host myaistor.example.com:9000 --access-key ACCESS_KEY --secret-key SECRET_KEY
The command uploads 2,500 objects of 10MiB each and downloads them repeatedly.
Large object downloads
Test download performance with larger objects:
warp get --host myaistor.example.com:9000 --obj.size 1GiB --objects 100 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
This simulates large file download scenarios.
Range request testing
Test partial object downloads with random ranges:
warp get --host myaistor.example.com:9000 --range --obj.size 100MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Range requests test the system’s ability to serve partial object content.
Fixed range size testing
Test partial downloads with consistent range sizes:
warp get --host myaistor.example.com:9000 --range-size 1MiB --obj.size 100MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Fixed range sizes simulate streaming or chunk-based access patterns.
High concurrency downloads
Test concurrent download operations:
warp get --host myaistor.example.com:9000 --concurrent 100 --objects 5000 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
This tests how the system handles many simultaneous download requests.
Versioned object downloads
Test download performance with versioned objects:
warp get --host myaistor.example.com:9000 --versions 10 --objects 1000 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Versioned downloads test retrieval of specific object versions.
Download existing objects
Test download speed on pre-existing bucket contents:
warp get --host myaistor.example.com:9000 --bucket existing-data --list-existing --noclear --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
This measures download performance without preparation overhead.