warp multipart-put
Test multipart upload performance for large object uploads without download testing.
Synopsis
Flags
Command-specific flags
--parts
Default: 100
Number of parts to upload for each multipart upload operation. The total object size equals part size multiplied by part count. Use this flag to test uploads with different object sizes.
Valid values range from 1 to 10,000 parts.
Example:
warp multipart-put --host myaistor.example.com:9000 --parts 200 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--part.size
Default: 5MiB
Size of each part in the multipart upload. Parts must be at least 5MiB for S3 compatibility. Use this flag to test different part size strategies for large uploads.
Valid formats include numbers or values with MiB or GiB suffixes (base 2 binary).
Example:
warp multipart-put --host myaistor.example.com:9000 --part.size 10MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--part.concurrent
Default: 20
Number of concurrent part upload operations per multipart upload. This value controls how many parts upload simultaneously for a single object. Use this flag to optimize parallel upload performance.
The concurrent value cannot exceed the total number of parts.
Example:
warp multipart-put --host myaistor.example.com:9000 --part.concurrent 10 --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-put benchmark focuses exclusively on upload performance using the S3 multipart API.
During the initialization phase, the command initiates multipart upload operations. Each concurrent operation creates a unique multipart upload with its own upload ID. The command prepares part data using the configured data generator.
During the upload phase, the command uploads parts according to the configured concurrency. Multiple parts upload simultaneously per multipart object based on the part.concurrent setting. Each part upload completes independently and reports individual timing metrics. After all parts upload successfully, the command completes the multipart upload operation.
The command measures upload throughput, part upload rates, and latency. Part-level concurrency reveals optimal parallelism for large object uploads. Multipart upload performance depends on part size, network bandwidth, and storage system capabilities.
Output
The multipart-put benchmark provides detailed metrics for large object upload operations.
The output includes upload throughput measured in MB/s for multipart uploads. Parts per second displays the rate of individual part uploads. Latency percentiles show response times at p50, p90, p99, and p99.9 levels for part upload operations.
The benchmark reports multipart initiation time showing overhead of starting uploads. Complete multipart latency displays time required to finalize uploads after parts complete. Error rates show counts and percentages of failed part uploads.
Part upload parallelism metrics reveal efficiency of concurrent part uploads. Total data uploaded shows aggregate size of all multipart objects created.
Examples
Basic multipart upload test
Test multipart uploads with default settings:
warp multipart-put --host myaistor.example.com:9000 --access-key ACCESS_KEY --secret-key SECRET_KEY
The command uploads 500MiB objects (100 parts of 5MiB each) with 20 concurrent parts.
Large object uploads
Test uploading very large objects:
warp multipart-put --host myaistor.example.com:9000 --parts 1000 --part.size 10MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
This uploads 10GiB objects to test large file handling.
High part concurrency
Test with more concurrent part uploads:
warp multipart-put --host myaistor.example.com:9000 --part.concurrent 50 --parts 100 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Higher concurrency can improve throughput on high-bandwidth networks.
Low part concurrency
Test with fewer concurrent part uploads:
warp multipart-put --host myaistor.example.com:9000 --part.concurrent 5 --parts 100 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Lower concurrency reduces resource usage and tests sequential upload patterns.
Large part sizes
Test with larger individual parts:
warp multipart-put --host myaistor.example.com:9000 --part.size 64MiB --parts 50 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Larger parts reduce API overhead but require more memory per part.
Many small parts
Test with many smaller parts:
warp multipart-put --host myaistor.example.com:9000 --part.size 5MiB --parts 500 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
More parts increase parallelism opportunities but add API call overhead.
Multiple concurrent uploads
Test multiple simultaneous multipart uploads:
warp multipart-put --host myaistor.example.com:9000 --concurrent 10 --parts 200 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
This tests how the system handles many concurrent large object uploads.