云平台性能测试之存储性能测试

一、认识存储磁盘IO

磁盘IO测试是指在性能测试过程中,对系统的磁盘读写操作进行测试和评估的过程。磁盘是计算机系统中重要的存储介质,对于许多应用程序来说,磁盘IO的性能影响着系统的整体性能。

在性能测试中,磁盘IO测试通常有以下指标。

磁盘读取:磁盘读取测试是通过模拟实际应用程序对磁盘的读取操作来评估磁盘的读取性能。该测试通常会模拟不同的读取负载,例如随机读取、顺序读取等不同的读取模式。通过监控读取操作的吞吐量、响应时间等指标,可以评估磁盘的读取性能。

磁盘写入:磁盘写入测试是通过模拟实际应用程序对磁盘的写入操作来评估磁盘的写入性能。该测试通常会模拟不同的写入负载,例如随机写入、顺序写入等不同的写入模式。通过监控写入操作的吞吐量、响应时间等指标,可以评估磁盘的写入性能。

带宽测试:通过传输大文件来测试存储系统的带宽。

吞吐量测试:通过模拟多个并发访问,在一定时间内对存储系统进行读写操作,测试存储系统的吞吐量。

延迟测试:通过发送请求并检查收到响应所需的时间,测试存储系统的延迟。

IOPS测试:通过模拟多个并发请求,测试每秒处理的输入/输出操作次数(IOPS)。

峰值负载测试:通过模拟高负载情况,测试存储系统在峰值负载下的性能表现。

随机性能测试:通过模拟随机读写操作,测试存储系统在随机工作负载下的性能表现。

理解磁盘IO的性能对于了解系统的瓶颈和优化系统性能非常重要。通过性能测试中的磁盘IO的相关指标,可以发现磁盘的性能瓶颈,例如磁盘读写速度是否达到系统的需求,是否存在磁盘队列等待的情况等。在优化系统性能时,可以根据磁盘IO的性能指标来调整磁盘配置,例如增加磁盘缓存、优化磁盘访问模式等,从而提高系统的整体性能。

二、测试说明

1.基于当前云平台环境的硬件配置,一般通过官网查询到存储性能指标的计算公式。通过该公式,可以估算出当前规模下该存储集群可提供的最大集群性能(IOPS和吞吐)。


2.增加多云主机或多挂载磁盘的方式,通过fio测试工具进行性能压测,测试存储集群的最大性能。


3.测试指标包括:

不同类型磁盘(SAS/SATA/SSD)的随机读IOPS、随机写IOPS、顺序读带宽、顺序写带宽、随机读延时、随机写延时;

不同存储集群(SAS/SATA/SSD)的随机读IOPS、随机写IOPS、顺序读带宽、顺序写带宽、存储集群性能上限;

4.测试所用工具

1)fio---磁盘性能测试工具

fio 是一个 I/O 工具用来对硬件进行压力测试和验证,支持 13 种不同的 I/O 引擎,包括:sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等,I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, 等等。


2)  iostat---磁盘性能监控工具

iostat 主要用于输出磁盘IO 和 CPU的统计信息。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。

三、测试用例

1、不同类型磁盘(SAS/SATA/SSD)的随机读写IOPS测试

1)测试前提动作:

在计算及存储节点执行echo 3 > /proc/sys/vm/drop_caches清空缓存

创建相同规格的虚拟机,挂载不同磁盘类型的50G云盘记为vdb;
执行mkfs.xfs /dev/vdb格式化数据盘;
执行mkdir -p /perf-test;
执行mount /dev/vdb /perf_test;

dd if=/dev/zero of=/perf_test/testfile \ bs=1M oflag=direct,sync count=20480


2)随机读IOPS测试:

fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio \
-bs=4k -size=20G -numjobs=1 -group_reporting \
-log_avg_msec=1000 -write_bw_log=test-fio \
-write_lat_log=test-fio -write_iops_log=test-fio \
-per_job_logs=0 -filename=/perf_test/testfile -name=rr-iops

3)随机写IOPS测试:

fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio \
-bs=4k -size=20G -numjobs=1 -group_reporting \
-log_avg_msec=1000 -write_bw_log=test-fio \
-write_lat_log=test-fio -write_iops_log=test-fio \
-per_job_logs=0 -filename=/perf_test/testfile -name=rw-iops

 4)测试记录

查看fio随机读写命令输出结果;或使用gnuplot生成fio测试过程数据,生成数据趋势图。

2、 不同类型磁盘(SAS/SATA/SSD)的顺序读写带宽测试

1)测试前提动作:

在计算及存储节点执行echo 3 > /proc/sys/vm/drop_caches清空缓存

创建相同规格的虚拟机,挂载不同磁盘类型的50G云盘记为vdb;
执行mkfs.xfs /dev/vdb格式化数据盘;
执行mkdir -p /perf-test;
执行mount /dev/vdb /perf_test;

dd if=/dev/zero of=/perf_test/testfile \ bs=1M oflag=direct,sync count=20480

 2)顺序读带宽测试:

fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio \
-bs=1024k -size=20G -numjobs=1 -group_reporting \
-log_avg_msec=1000 -write_bw_log=test-fio \
-write_lat_log=test-fio -write_iops_log=test-fio \
-per_job_logs=0 -filename=/perf_test/testfile -name=sr-bw

 3)顺序写带宽测试:

fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio \
-bs=1024k -size=20G -numjobs=1 -group_reporting \
-log_avg_msec=1000 -write_bw_log=test-fio \
-write_lat_log=test-fio -write_iops_log=test-fio \
-per_job_logs=0 -filename=/perf_test/testfile -name=sw-bw;

 4)测试记录

查看fio随机读写命令输出结果;或使用gnuplot生成fio测试过程数据,生成数据趋势图。

3、 不同类型磁盘(SAS/SATA/SSD)的随机读写时延测试

1)测试前提动作:

在计算及存储节点执行echo 3 > /proc/sys/vm/drop_caches清空缓存

创建相同规格的虚拟机,挂载不同磁盘类型的50G云盘记为vdb;
执行mkfs.xfs /dev/vdb格式化数据盘;
执行mkdir -p /perf-test;
执行mount /dev/vdb /perf_test;

dd if=/dev/zero of=/perf_test/testfile \ bs=1M oflag=direct,sync count=20480

2)随机读时延测试:

fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio \
-bs=4k -size=20G -numjobs=1 -group_reporting \
-log_avg_msec=1000 -write_bw_log=test-fio \
-write_lat_log=test-fio -write_iops_log=test-fio \
-per_job_logs=0 -filename=/perf_test/testfile -name=rr-latency

 3)随机写时延测试:

fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio \
-bs=4k -size=20G -numjobs=1 -group_reporting \
-log_avg_msec=1000 -write_bw_log=test-fio \
-write_lat_log=test-fio -write_iops_log=test-fio \
-per_job_logs=0 -filename=/perf_test/testfile -name=rw_latency

 4)测试记录

查看fio随机读写命令输出结果;或使用gnuplot生成fio测试过程数据,生成数据趋势图。

 4、 不同存储集群(SAS/SATA/SSD)的IOPS读写、带宽读写性能上限测试

1)测试前提动作

创建多台测试虚拟机(不同规格存储轮流测试)备用

2)IOPS上限测试

依次启动虚拟机,并参照1(随机读写IOPS的步骤)执行压测命令,10台主机一组,完成测试并记录为一组数据,然后继续增加测试组数,每组测试较上一组测试增加10台虚机,同时启动测试命令,完成测试并记录为一组数据;直到所有虚机随机读写IOPS之和不在增加则停止测试

3)带宽上限测试

依次启动虚拟机,并参照1(顺序读写带宽的步骤)执行压测命令,10台主机一组,完成测试并记录为一组数据,然后继续增加测试组数,每组测试较上一组测试增加10台虚机,同时启动测试命令,完成测试并记录为一组数据;直到所有虚机顺序读写带宽之和不在增加则停止测试

4)测试记录

查看fio随机读写命令输出结果;或使用gnuplot生成fio测试过程数据,生成数据趋势图;也可以使用iostat等工具记录每组测试过程中服务器的相关监控数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高级编程,JavaScript笔记-字符串的常用方法

一、操作方法 我们也可将字符串常用的操作方法归纳为增、删、改、查,需要知道字符串的特点是一旦创建了,就不可变 增 这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作 除了常用以及${}进行字符串拼接之…

Java中打印图案最常用的25个图案程序

Java是公认的最流行的编程语言,因为它的简单性和多功能性。还可以使用它开发各种应用程序,包括Web、移动和桌面应用程序。此外,Java为开发人员提供了强大的工具来轻松高效地创建复杂的程序。Java最有前途的特性之一是它能够创建可以以特定格式…

《向量数据库指南》——为什么说向量数据库是更适合AI体质的“硬盘”

其“AI原生”的体质,具体表现在几个方面: 1.更高的效率。 AI算法,要从图像、音频和文本等海量的非结构化数据中学习,提取出以向量为表示形式的“特征”,以便模型能够理解和处理。因此,向量数据库比传统基于索引的数据库有明显优势。 2.更低的成本。 大模型要从一种新…

美易平台:美国阿特拉斯航空公司波音747 8型货机因发动机故障安全降落

正文: 据路透社报道,美国阿特拉斯航空公司的一架波音747 8型货机在从迈阿密国际机场起飞后不久,发动机出现故障,但幸运的是飞机成功安全降落。这一事件引起了人们对航空安全的关注。 根据航空信息网站Flightaware的数据显示&…

【stm32】hal库学习笔记-GPIO按键控制LED和蜂鸣器(超详细!)

【stm32】hal库学习笔记-GPIO按键控制LED和蜂鸣器 注:本学习笔记基于stm32f4系列 使用的开发板为正点原子stmf407ZGT6探索者开发板 GPIO引脚使用时,可输入或输出数字信号 例如: 检测按键输入信号(Read_Pin)输出信号(W…

敏捷开发之开发流程

敏捷开发流程 一、迭代周期 我们团队的迭代周期一般是2周,如果研发评估时间过长的话也会将周期延长至一个月,但是大多数我们是2周的迭代周期。 这里说的2周是研发开始coding、提测、测试、上线,也就是说2周以后要上线相应的能力。并不包括…

flink operator 拉取阿里云私有镜像(其他私有类似)

创建 k8s secret kubectl --namespace flink create secret docker-registry aliyun-docker-registry --docker-serverregistry.cn-shenzhen.aliyuncs.com --docker-usernameops_acr1060896234 --docker-passwordpasswd --docker-emailDOCKER_EMAIL注意命名空间指定你使用的 我…

从0开始python学习-50.pytest之多接口用例封装

1. yaml用例设计--一个yaml中多个用例,且互相存在关联关系 - # 第一个用例request:method: posturl: http://192.168.0.1:8010/apijson:accounts: adminpwd: 123type: usernameheaders:Content-Type: application/json- # 第二个用例request:method: posturl: http:…

Linux:多线程

目录 1.线程的概念 1.1线程的理解 1.2进程的理解 1.3线程如何看待进程内部的资源? 1.4进程 VS 线程 2.线程的控制 2.1线程的创建 2.2线程的等待 2.3线程的终止 2.4线程ID 2.5线程的分离 3.线程的互斥与同步 3.1相关概念 3.2互斥锁 3.2.1概念理解 3.2.2操作理解…

分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测

分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测 目录 分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本…

js控制浏览器前进、后退、页面跳转

在JavaScript中,你可以使用 window 对象的 history 对象来控制浏览器的历史记录。以下是一些常用的方法: 前进和后退: window.history.forward(): 前进到历史记录中的下一个页面。window.history.back(): 返回历史记录中的上一个页面。window…

模型的召回率(Recall)

召回率(Recall),也称为灵敏度(Sensitivity)或真正例率(True Positive Rate),是用于评估二分类模型性能的指标之一。召回率衡量了模型正确识别正例的能力,即在所有实际正例…

ctfshow php特性(web89-web101)

目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 php特性(php基础知识) web89 <?php include("flag.php"); highlight_file(_FILE_);if(isset($_GET[num])){$num$_GET[num];if(preg_match("/[0-9]/&…

Debezium发布历史77

原文地址&#xff1a; https://debezium.io/blog/2019/12/13/externalized-secrets/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 使用 Debezium 连接器实现秘密外部化 十二月 13, 2019 作者&#xff1a; Jir…

Docker项目部署()

1.创建文件夹tools mkdir tools 配置阿里云 Docker Yum 源 : yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker - ce.repo 更新 yum 缓存 yum makec…

【机器学习理论】2023 Spring Homework 1

Please login to Gradescope via your CUHK account and use the entry code: 6ZWGYD Problem 1 (Gaussian Distribution as an Exponential Family): We showed Gaussian distribution N ( μ , σ 2 ) \mathcal{N}\left(\mu, \sigma^{2}\right) N

军事课堂MR情景仿真实训教学

一、课堂应用场景 1、战术模拟&#xff1a;MR系统可以模拟各种战场环境&#xff0c;让学生在实际操作中了解和掌握各种战术技巧。通过模拟实战场景&#xff0c;学生可以在短时间内获得丰富的实战经验&#xff0c;提高他们的应变能力和团队协作能力。 2、武器操作训练&#xf…

Kafka-消费者-KafkaConsumer分析-PartitionAssignor

Leader消费者在收到JoinGroupResponse后&#xff0c;会按照其中指定的分区分配策略进行分区分配&#xff0c;每个分区分配策略就是一个PartitionAssignor接口的实现。图是PartitionAssignor的继承结构及其中的组件。 PartitionAssignor接口中定义了Assignment和Subscription两个…

三国游戏(寒假每日一题+贪心、枚举)

题目 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z&#xff08;一开始可以认为都为 0&#xff09;。 游戏有 n 个可能会发生的事件&#xff0c;每个事件之间相互独立且最多只会发生一次&#xff0c;当第 i个事件发生时会分别让 X,Y,Z 增加 Ai,Bi…

什么是低代码(Low-Code)?低代码平台的适用人群

低代码平台是一种革命性的工具&#xff0c;它让非专业的开发人员也能轻松创建应用程序。通过直观的可视化界面和拖放功能&#xff0c;开发人员能够轻松地构建和部署应用程序&#xff0c;无需专业的编程知识。低代码平台的出现&#xff0c;降低了应用程序开发的门槛&#xff0c;…