warp put
Test object upload performance to measure S3 PUT operation throughput and latency.
Synopsis
Flags
Command-specific flags
--obj.size
Default: 10MiB
Size of each object uploaded during the benchmark. The object size directly affects upload throughput and latency. Use this flag to test upload behavior with different object sizes.
Valid formats include numbers or values with KiB, MiB, or GiB suffixes (base 2 binary).
Example:
warp put --host myaistor.example.com:9000 --obj.size 100MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
--post
Default: false
Use the PostObject API for uploads instead of PutObject. The PostObject method forces single-part uploads. Use this flag to test the alternate upload API.
Example:
warp put --host myaistor.example.com:9000 --post --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 put benchmark continuously uploads objects to measure write performance.
During the upload phase, the command generates objects using the configured data generator. Object generation creates test data with the specified size and characteristics. The command uploads objects with random prefixes to distribute load across the storage system. Each upload operation measures latency and throughput independently.
The command uses PutObject by default, which automatically selects multipart uploads for large objects. When the post flag is enabled, the command uses PostObject instead, forcing single-part uploads. Upload operations continue throughout the specified benchmark duration.
The command measures upload throughput, latency, and error rates. Upload performance depends on object size, network bandwidth, and storage system capabilities. Multipart thresholds and part sizes affect performance for larger objects.
Output
The put benchmark provides metrics for object upload operations.
The output includes upload throughput measured in MB/s showing data transfer rates. Operations per second displays how many PUT requests the system can handle. Latency percentiles show response times at p50, p90, p99, and p99.9 levels for upload operations.
The benchmark reports error rates for failed PUT operations. Total object counts show how many uploads were successfully completed during the test. For multipart uploads, the output includes multipart-specific performance metrics.
Success and failure rates reveal upload reliability. Object creation statistics show the aggregate data uploaded during the benchmark.
Examples
Basic upload test
Test upload performance with default settings:
warp put --host myaistor.example.com:9000 --access-key ACCESS_KEY --secret-key SECRET_KEY
The command uploads 10MiB objects continuously throughout the test duration.
Large object uploads
Test upload performance with larger objects:
warp put --host myaistor.example.com:9000 --obj.size 1GiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
This tests throughput for large file uploads.
Small object uploads
Test upload performance with smaller objects:
warp put --host myaistor.example.com:9000 --obj.size 100KiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Small objects test metadata-intensive upload patterns.
Variable object sizes
Test with randomized object sizes:
warp put --host myaistor.example.com:9000 --obj.size 1KiB,100KiB,1MiB,10MiB --obj.randsize --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Variable sizes simulate realistic application workloads.
High concurrency uploads
Test concurrent upload operations:
warp put --host myaistor.example.com:9000 --concurrent 100 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
This tests how the system handles many simultaneous upload requests.
Encrypted uploads
Test upload performance with server-side encryption:
warp put --host myaistor.example.com:9000 --sse-s3-encrypt --obj.size 50MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Encryption testing reveals performance impact of server-side encryption.
PostObject API testing
Test uploads using the PostObject API:
warp put --host myaistor.example.com:9000 --post --obj.size 5MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
PostObject forces single-part uploads regardless of size.
Checksum validation
Test uploads with checksum verification:
warp put --host myaistor.example.com:9000 --checksum CRC32C --obj.size 50MiB --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY
Checksums add data integrity validation to uploads.