使用 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.yamlkubectl 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 ...
随机推荐
- 痞子衡嵌入式:i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项. 最近痞子衡在支持一个印度客户,这个客户项目主芯片选择 ...
- 007 GMII、SGMII和SerDes的区别和联系
一.GMII和SGMII的区别和联系 GMII和SGMII区别,上一篇已经介绍了,这一篇重点介绍SGMII和SerDes区别. GMII和SGMII GMII 在MII接口基础上提升了数据位宽和Clo ...
- SSM自学笔记(五)
10.MyBatis入门操作 1.MyBatis的简介 1.1 原始jdbc操作(查询数据) 1.2 原始jdbc操作(插入数据) ##### 1.3 **原始**jdbc操作的分析 原始jdbc开发 ...
- nacos config基本使用
说明 Nacos is an easy-to-use dynamic service discovery, configuration and service management platform ...
- Swagger2常用注解解析(轻松构建Swagger)
Swagger2常用注解解析 一.SpringBoot集成Swagger2 二.常用注解解析 具体使用举例说明: 一.SpringBoot集成Swagger2 引入相关jar包 <!-- swa ...
- Python代码阅读(第1篇):列表映射后的平均值
本篇阅读的代码实现了将列表进行映射,并求取映射后的平均值. 本篇阅读的代码片段来自于30-seconds-of-python. average_by def average_by(lst, fn=la ...
- SpringBoot博客开发之异常处理
异常处理: 背景: 最近在搭建属于自己的个人博客(码农小白的执念),自己搭建后端的时候首先考虑的是异常处理.个人也是一边学习一边做,难免有疏漏的地方,希望朋友们在不对的地方提醒下. 技术栈: spri ...
- 用C++实现的有理数(分数)四则混合运算计算器
实现目标 用C++实现下图所示的一个console程序: 其中: 1.加减乘除四种运算符号分别用+.-.*./表示, + 和 - 还分别用于表示正号和负号. 2.分数的分子和分母以符号 / 分隔. 3 ...
- python使用pip安装模块出错 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None))
python使用pip安装模块出错 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) 问题: ...
- 编程读写CAD文件验证
背景 B/S应用系统,根据用户上传数据:业务数据和CAD坐标数据,经过一系列运筹算法运算后,输出一批坐标数据,作为给用户的规划结果.此时需要方便直观的给用户展示坐标数据.可选方式有两个: web页面画 ...