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.