The intent of this Operator is to deploy common workloads to establish a performance baseline of Kubernetes cluster on your provider.
Workload | Use | Status in Operator | Reconciliation usage | VM support (kubevirt) |
---|---|---|---|---|
UPerf | Network Performance | Working | Used, default : 3second | Preview |
Iperf3 | Network Performance | Working | Used, default : 3second | Not Supported |
fio | Storage IO | Working | Used, default : 3second | Not Supported |
Sysbench | System Performance | Working | Used, default : 3second | Not Supported |
YCSB | Database Performance | Working | Not used | Not Supported |
Byowl | User defined workload | Working | Used, default : 3second | Not Supported |
Pgbench | Postgres Performance | Working | Used, default : 3second | Not Supported |
Smallfile | Storage IO Performance | Working | Used, default : 3second | Not Supported |
fs-drift | Storage IO Longevity | Working | Not used | Not Supported |
hammerdb | Database Performance | Working | Not used | Not Supported |
Previously the Benchmark Operator didn't properly take advantage of the reconciliation period. Going forward we will make every attempt to utilize the reconciliation period.
Why did we decide to switch to this? Our operator would implement long running tasks, due to the nature of benchmarks.
However, long running tasks blocks the Operator, causing us to delete the Operator and re-create the operator to
un-block it. The benchmarks mentioned above that state Used
for Reconciliation, no longer have this issue.
These two bencharmks are written in a way that doesn't allow for reconciliation to be implemented. To take advantage of the reconciliation loop, these two benchmarks need to be rewritten.
Key Members(slack_usernames): aakarsh, dblack or rook