工具
Dbench
- https://github.com/leeliu/dbench
用法
编辑 dbench.yaml
文件中的 storageClassName
以匹配你自己的 Storage Class
。
部署
部署后,Dbench Job
将:
- 使用
storageClassName: ssd
(默认)提供1000Gi
(默认)的持久卷。 - 目前有
9
个测试,每个测试15
秒 - 总运行时间约为2.5
分钟。
使用以下方法跟踪基准测试进度:
空输出表示 job
尚未创建,或 storageClassName
无效,请参阅下面的故障排除。
在所有测试结束时,您将看到类似于以下内容的摘要:
Dbench
摘要结果
Random Read/Write IOPS
(随机读写)Average Latency (usec) Read/Write
(读/写平均延迟)Mixed Random Read/Write IOPS
(混合随机读/写)
测试完成后,进行清理:
注意事项/故障排除
- 如果
持久化卷声明(Persistent Volume Claim)
卡在Pending
上,很可能您没有指定有效的存储类(Storage Class
)。使用kubectl get storageclasses
进行双重检查。还要检查用于配置的卷大小是否为1000Gi
(默认值)。 - 绑定持久性卷可能需要一些时间,
Kubernetes Dashboard UI
将Dbench Job
显示为红色,直到卷完成配置。 - 测试多种磁盘大小很有用,因为大多数云提供商按每
GB
配置的IOPS
定价。因此,4000Gi
卷的性能可能将优于1000Gi
卷。重新测试,只需编辑yaml
,kubectl delete -f dbench.yaml
并在deprovision/delete
完成后再次运行kubectl apply -f dbench.yaml
。 - 所有
fio
测试的项都在docker-entrypoint.sh
中。 - Testing Read IOPS...
- Testing Write IOPS...
- Testing Read Bandwidth...
- Testing Write Bandwidth...
- Testing Read Latency...
- Testing Write Latency...
- Testing Read Sequential Speed...
- Testing Write Sequential Speed...
- Testing Read/Write Mixed...
腾讯云 K8S 集群生产实战
kubectl get storageclass
vi dbench.yaml
kubectl apply -f dbench.yaml
kubectl logs -f job/dbench
kubectl delete -f dbench.yaml