warp multipart

Test multipart upload and download performance to measure large object transfer operations.

Synopsis

Flags

Command-specific flags

--part.size

Default: 5MiB

Size of each part in the multipart operation. Parts must be at least 5MiB for S3 compatibility. Use this flag to test different part size strategies for large object transfers.

Valid formats include numbers or values with MiB or GiB suffixes (base 2 binary).

Example:

warp multipart --host myaistor.example.com:9000 --part.size 10MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

--parts

Default: 200

Number of parts to upload per client for each multipart operation. The total object size equals part size multiplied by part count. Use this flag to test transfers with different object sizes.

Example:

warp multipart --host myaistor.example.com:9000 --parts 100 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

--obj.name

Default: warp-multipart.bin

Name of the object used for multipart operations. All clients contribute parts to this shared object name. Use this flag to specify a custom object name for testing.

Example:

warp multipart --host myaistor.example.com:9000 --obj.name test-large-object.bin --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Shared flags

This command supports all common flags including connection, performance, object, upload, benchmark control, analysis, and monitoring flags.

Benchmark behavior

The multipart benchmark tests large object transfer performance using the S3 multipart API.

During the initialization phase, the command initiates a multipart upload operation. The initialization creates an upload ID shared across all benchmark clients. Each client receives a part number range to upload independently.

During the upload phase, each client uploads its assigned parts to the multipart object. Parts upload concurrently across all clients and threads. The command measures individual part upload throughput and latency. After all parts upload, the command completes the multipart upload operation.

During the download phase, the command downloads the completed multipart object. Downloads occur concurrently across all clients. The benchmark measures download throughput and compares with upload performance.

The command measures throughput for both upload and download operations. Part-level metrics reveal efficiency of parallel part uploads. Multipart operations test the storage system’s ability to handle large objects efficiently.

Output

The multipart benchmark provides metrics for large object transfer operations.

The output includes upload throughput measured in MB/s for multipart uploads. Download throughput displays data transfer rates for retrieving large objects. Parts per second show the rate of individual part uploads. Latency percentiles show response times at p50, p90, p99, and p99.9 levels for part operations.

The benchmark reports completion time for the full multipart upload sequence. Error rates display counts and percentages of failed part operations. Total data transferred shows the aggregate size of uploaded and downloaded data.

Multipart efficiency metrics reveal overhead from part management operations. Part completion statistics show distribution of upload times across parts.

Examples

Basic multipart test

Test multipart upload and download with default settings:

warp multipart --host myaistor.example.com:9000 --access-key ACCESS_KEY --secret-key SECRET_KEY

The command uploads a 1GiB object (200 parts of 5MiB each) and then downloads it.

Large part size testing

Test with larger parts:

warp multipart --host myaistor.example.com:9000 --part.size 16MiB --parts 128 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Larger parts reduce API overhead but require more memory per part.

Small part size testing

Test with smaller parts:

warp multipart --host myaistor.example.com:9000 --part.size 5MiB --parts 400 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Smaller parts increase parallelism but add API call overhead.

Very large object testing

Test uploading very large objects:

warp multipart --host myaistor.example.com:9000 --part.size 64MiB --parts 1000 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

This creates a 64GiB object to test large file handling.

High concurrency multipart

Test concurrent multipart operations:

warp multipart --host myaistor.example.com:9000 --concurrent 20 --parts 100 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Multiple concurrent clients all contribute parts to the same object.

Custom object naming

Test with a specific object name:

warp multipart --host myaistor.example.com:9000 --obj.name large-test-file.dat --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY

Custom naming helps identify test objects in the bucket.