工具
Dbench
用法
- 编辑
dbench.yaml
文件中的storageClassName
以匹配你自己的Storage Class
。
kubectl get storageclasses
- 部署
kubectl apply -f dbench.yaml
- 部署后,
Dbench Job
将:
- 使用
storageClassName: ssd
(默认)提供1000Gi
(默认)的持久卷。 - 在新配置的磁盘上运行一系列
fio
测试。 - 目前有
9
个测试,每个测试15
秒 - 总运行时间约为2.5
分钟。
- 使用以下方法跟踪基准测试进度:
kubectl logs -f job/dbench
- 空输出表示
job
尚未创建,或storageClassName
无效,请参阅下面的故障排除。 - 在所有测试结束时,您将看到类似于以下内容的摘要:
================== = Dbench Summary = ================== Random Read/Write IOPS: 75.7k/59.7k. BW: 523MiB/s / 500MiB/s Average Latency (usec) Read/Write: 183.07/76.91 Sequential Read/Write: 536MiB/s / 512MiB/s Mixed Random Read/Write IOPS: 43.1k/14.4k
Dbench
摘要结果
Random Read/Write IOPS
(随机读写)BW
(带宽)Average Latency (usec) Read/Write
(读/写平均延迟)Sequential Read/Write
(顺序读/写)Mixed Random Read/Write IOPS
(混合随机读/写)
- 测试完成后,进行清理:
kubectl delete -f dbench.yaml
注意事项/故障排除
- 如果
持久化卷声明(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