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