warp put
Test object upload performance to measure S3 PUT operation throughput and latency.
Synopsis
warp put [FLAGS]The put command benchmarks S3 PUT operation performance. The command uploads objects to the target bucket and measures upload speed. You can configure object sizes and upload methods to simulate different upload patterns.
warp put --host myaistor.example.com:9000 --access-key ACCESS_KEY --secret-key SECRET_KEYRun a basic put benchmark that uploads objects repeatedly. The command measures how quickly the storage system processes PUT requests.
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_KEYShared 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_KEYThe 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_KEYThis 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_KEYSmall 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_KEYVariable 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_KEYThis 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_KEYEncryption 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_KEYPostObject 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_KEYChecksums add data integrity validation to uploads.