Before running workloads, review the following key terms:
| Resource | Description |
|---|---|
| Host / Endpoint | The object storage server being tested. http://minio-server |
| Bucket | S3 bucket used for benchmarking. Warp does not create buckets; they must be created in advance. To create buckets and generate access and secret keys, you must be a member of the S3 bucket management group. |
| Object size | Size of objects (for example, 1MiB, 512KiB) |
| Object count | Number of objects to read or write (default: 2,500) |
| Duration | Total workload runtime (for example, 30s, 5m, 1h) |
| Concurrency | Number of parallel I/O operations or threads |
| Operations | PUT, GET, DELETE, or MIXED (a combination of PUT and GET) |
| Client | Network interfaces through which I/O operations are run.
|
Note: When running Warp across multiple hosts, verify that password-less SSH login is configured on all worker hosts from the master host (where the Warp command is triggered).
After a workload is triggered, Warp may take a short time to prepare before the workload run begins.
During the run, progress and elapsed time are displayed in the terminal.
Warp supports distributed workload generation across multiple servers and network interfaces.
Bucket owners generate their own S3 credentials through the Storage Manager app. The credentials are created based on the authenticated session of the bucket owner making the request. An administrator cannot generate S3 credentials on behalf of another user.
When you generate new S3 credentials, any previously created keys are invalidated. The keys are only visible during generation, so if they are lost, you must create new ones for the user.
Example workloads:
PUT Workload (Write Objects)
Use this workload to evaluate write throughput and latency.
./warp put \ --duration=10m \ --host=s3_endpoint \ --access-key=access_key \ --secret-key=secret_key \ --bucket=test \ --noclear \ --obj.size=64M \ --region=us-east-1 \ --tls \ --insecure \ --concurrent=112
GET Workload (Read Objects)
Use this workload to measure read performance.
./warp get \ --duration=2m \ --host=s3_endpoint \ --access-key=access_key \ --secret-key=secret_key \ --bucket=bucket1 \ --noclear \ --obj.size=4M \ --region=us-east-1 \ --tls \ --insecure \ --concurrent=112
MIXED Workload (Read and Write Objects)
Use this workload to simulate real-world scenarios with both reads and writes.
./warp mixed \ --duration=2m \ --host=s3.us-east-1.vsp1o.vspoc.sea.gpsecontent.local \ --access-key=access_key \ --secret-key=secret_key \ --bucket=bucket1 \ --noclear \ --obj.size=4M \ --region=us-east-1 \ --tls \ --insecure \ --concurrent=112 \ --put-distrib=50 \ --get-distrib=50 \ --stat-distrib=0 \ --delete-distrib=0
Multi-Host / Multi-Interface Workload
Use this configuration to generate workloads across multiple hosts and network interfaces for large-scale performance testing.
- Two servers used for workload generation
- Each server has two network interfaces
- All interfaces participate in generating concurrent I/O operations
./warp mixed \ --duration=2m \ --host=s3.us-east-1.vsp1o.vspoc.sea.gpsecontent.local \ --access-key=access_key \ --secret-key=secret_key \ --bucket=bucket1 \ --noclear \ --obj.size=4M \ --region=us-east-1 \ --tls \ --insecure \ --concurrent=112 \ --warp-client=server1_Interface1,server1_Interface2,server2_Interface1,server2_Interface2 \ --put-distrib=50 \ --get-distrib=50 \ --stat-distrib=0 \ --delete-distrib=0
Additional considerations
- Multi-host runs eliminate the need to manually log in to each server to trigger workloads, reducing operational effort and startup delays.
- Warp generates a single consolidated result file for multi-host runs, making performance analysis more efficient.
- For MIXED I/O operations with high concurrency levels (≥100), run the workload for at least 10 minutes to ensure accurate operation distribution and reliable performance metrics.