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.