使用 FIO 对 Kubernetes 持久卷进行 Benchmark:读/写(IOPS)、带宽(MB/s)和延迟
工具
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
公众号:黑客下午茶
使用 FIO 对 Kubernetes 持久卷进行 Benchmark:读/写(IOPS)、带宽(MB/s)和延迟的更多相关文章
- 通过搭建MySQL掌握k8s(Kubernetes)重要概念(上):网络与持久卷
上一篇"通过实例快速掌握k8s(Kubernetes)核心概念"讲解了k8s的核心概念,有了核心概念整个骨架就完整了,应付无状态程序已经够了,但还不够丰满.应用程序分成两种,无状态 ...
- (九)Kubernetes 存储卷
Kubernetes存储卷概述 Pod本身具有生命周期,这就带了一系列的问题,第一,当一个容器损坏之后,kubelet会重启这个容器,但是文件会丢失-这个容器会是一个全新的状态:第二,当很多容器在同一 ...
- Kubernetes 存储卷详解
转载自:https://mp.weixin.qq.com/s/Ywx3ju6FP0IShOgI757XYA Volumes 默认情况下容器中的磁盘文件是非持久化的,对于运行在容器中的应用来说面临两个问 ...
- kubernetes 存储卷
kubernetes 存储卷 数据卷用于实现容器持久化数据,Kubernetes对于数据卷重新定义,提供了丰富强大的功能.在Kubernetes系统中,当Pod重建的时候,数据卷会丢失,Kube ...
- kubernets之持久卷的动态配置
一 介绍持久卷的动态配置原理 前面介绍的pv以及pvc,都需要kubernets集群管理员来支持实际的底层存储,但是kubernets还支持动态配置持久卷来自动化完成这个任务集群管理员可以创建一个持 ...
- 如何在Kubernetes集群动态使用 NAS 持久卷
1. 介绍: 本文介绍的动态生成NAS存储卷的方案:在一个已有文件系统上,自动生成一个目录,这个目录定义为目标存储卷: 镜像地址:registry.cn-hangzhou.aliyuncs.com/a ...
- Kubernetes 学习12 kubernetes 存储卷
一.概述 1.我们此前讲过根据应用本身是否需要持久存储数据以及某一次请求和之前的请求是否有联系,可以分为四类应用 a.有状态,要存储 b.有状态,无持久存储 c.无状态,要存储 d.无状态,无持久存储 ...
- Kubernetes 存储卷管理 PV&PVC(十)
目录 一.emptyDir 二.hostPath 三.PV & PVC 1.NFS PersistentVolume 2.创建 PVC 3.创建 Pod 进行挂载 为了持久化保存容器的数据,可 ...
- Kubernetes 中部署 NFS-Subdir-External-Provisioner 为 NFS 提供动态分配卷
文章转载自:http://www.mydlq.club/article/109/ 系统环境: 操作系统: CentOS 7.9 Docker 版本: 19.03.13 Kubernetes 版本: 1 ...
随机推荐
- Pytest+Allure 示例
0. 前言 简介 Allure 框架是一个灵活的.轻量级的.支持多语言的测试报告工具,它不仅以 Web 的方式展示了简介的测试结果,而且允许参与开发过程的每个人可以从日常执行的测试中,最大限度地提取有 ...
- 题解 Omeed
传送门 差了一点没想到正解-- 首先单次询问的 \(O(n)\) 写法很好想,考虑如何优化 首先基础分区间求和即可 然后那个连击分的话,是一个关于 \(f_i\) 和 \(f_{i-1}\) 的柿子 ...
- 题解 party?
传送门 挺遗憾的一个题 考场上想到的思路是题解的退化版,可以有71pts(赛时以为只有20pts),但因为这一场的策略原因没有打-- 首先发现颜色种类数很少,可以直接bitset上树剖维护,炸不了空间 ...
- 8、二进制安装K8s之部署CIN网络
二进制安装K8s之部署CIN网络 部署CIN网络可以使用flannel或者calico,这里介绍使用calico ecd 方式部署. 1.下载calico二进制安装包 创建所需目录 mkdir -p ...
- 在WPF中的ItemsControl中使用事件和命令(Using events and Commands within ItemsControl in WPF)
Say I have a standard WPF ItemsControl bound to an ObservableCollection of "Dog" objects l ...
- Vue 插槽 slot的简单实用
- ASP.Net Core Web Api 使用 IdentityServer4 最新版 踩坑记录
辅助工具 日志追踪包 : Serilog.AspNetCore 源码查看工具 : ILSpy 项目环境 ###: ASP.NetCore 3.1 IdentityServer4 4.0.0+ 主题内容 ...
- WPF Tree多级绑定
<Window x:Class="TreeTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/20 ...
- nuxt.js服务端渲染中less的配置和使用
第一步:npm 安装 less 和 less-loader ,文件根目录下安装,指令如下 npm install less less-loader --save-dev 第二步:直接在组件中使用 &l ...
- 并发容器之ConcurrentHashMap
JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为同步容器将所有对容器状态的访问都 串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低 ...