使用 FIO 对 Kubernetes 持久卷进行 Benc

工具

Dbench

用法

  1. 编辑 dbench.yaml 文件中的 storageClassName 以匹配你自己的 Storage Class
1
sh复制代码kubectl get storageclasses
  1. 部署
1
sh复制代码kubectl apply -f dbench.yaml
  1. 部署后,Dbench Job 将:
* 使用 `storageClassName: ssd`(默认)提供 `1000Gi`(默认)的持久卷。
* 在新配置的磁盘上运行一系列 `fio` 测试。
* 目前有 `9` 个测试,每个测试 `15` 秒 - 总运行时间约为 `2.5` 分钟。
  1. 使用以下方法跟踪基准测试进度:
1
sh复制代码kubectl logs -f job/dbench

空输出表示 job 尚未创建,或 storageClassName 无效,请参阅下面的故障排除。
5. 在所有测试结束时,您将看到类似于以下内容的摘要:

1
2
3
4
5
6
7
sh复制代码==================
= 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`(混合随机读/写)
  1. 测试完成后,进行清理:
1
sh复制代码kubectl delete -f dbench.yaml

注意事项/故障排除

  • 如果持久化卷声明(Persistent Volume Claim)卡在 Pending 上,很可能您没有指定有效的存储类(Storage Class)。使用 kubectl get storageclasses 进行双重检查。还要检查用于配置的卷大小是否为 1000Gi(默认值)。
  • 绑定持久性卷可能需要一些时间,Kubernetes Dashboard UIDbench Job 显示为红色,直到卷完成配置。
  • 测试多种磁盘大小很有用,因为大多数云提供商按每 GB 配置的 IOPS 定价。 因此,4000Gi 卷的性能可能将优于 1000Gi 卷。重新测试,只需编辑 yamlkubectl 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

1.png
2. vi dbench.yaml

2.png
3. kubectl apply -f dbench.yaml
4. kubectl logs -f job/dbench

3.png
5. kubectl delete -f dbench.yaml

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%