当前位置:首页 > IT科技类资讯

使用 FIO 对 Kubernetes 持久卷进行 Benchmark:读/写(IOPS)、带宽(MB/s)和延迟

 

本文转载自微信公众号「黑客下午茶」,使用作者为少。对读写带宽转载本文请联系黑客下午茶公众号。持久

工具

Dbench

https://github.com/leeliu/dbench

用法

1.编辑 dbench.yaml 文件中的卷进 storageClassName 以匹配你自己的 Storage Class。

kubectl get storageclasses 

2.部署

kubectl apply -f dbench.yaml 

3.部署后,延迟Dbench Job 将:

使用 storageClassName: ssd(默认)提供 1000Gi(默认)的使用持久卷。 在新配置的对读写带宽磁盘上运行一系列 fio 测试。 目前有 9 个测试,持久每个测试 15 秒 - 总运行时间约为 2.5 分钟。卷进

4.使用以下方法跟踪基准测试进度:

kubectl logs -f job/dbench 

空输出表示 job 尚未创建,延迟或 storageClassName 无效,站群服务器使用请参阅下面的对读写带宽故障排除。

5.在所有测试结束时,持久您将看到类似于以下内容的卷进摘要:

================== = 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(混合随机读/写)

6.测试完成后,进行清理:

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 集群生产实战

1.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

分享到:

滇ICP备2023006006号-16