fio测试结果怎么看

FIO在测试过程中会在屏幕上显示测试结果,但其更有价值的信息还是测试后输出的测试结果文件(扩展名为.txt的文本文件),以及若干日志(扩展名为.log文本文件)。正确地判读这些文件,进行汇总和处理,包括可视化和数值分析,才能真正发挥FIO这般强大测试工具的真正价值。

譬如下图是我们进行的一组4KB随机读测试的结果,其中,RandRe4K_Num1QD1.txt是Job=1、Depth=1的测试成绩汇总,RandRe4K_Num2QD1.txt是Job=2、Depth=1的数据……以此类推,这些文件名是我们在测试命令行中预先定义好的。在文件名后用下划线分隔了若干日志,如bw代表带宽、iops代表操作数量,clat、slat、lat是时延。日志名末尾的数字是对应的进程,具体的数量由Job的设置而定。由于我们设计的测试方案比较繁琐,单单是这一组随机读的测试就产生了超过300个文件。如果将其他测试项目并入,我们需要处理数以千计的文件。

fio测试结果怎么看

测试结果判读

判读FIO的测试结果文件就可以对SSD的性能有详尽的了解。对于举例的随机读测试,之前的测试教程所分享的经验告诉我们:较高的队列设置会更接近SSD的极限性能。因此,我们可以优先看一下QD达到256的数据,以下就是Job=8、Depth=32的数据。

fio测试结果怎么看

测试文件的第一段落介绍了基本的测试设置,包括IO类型、数据包大小、队列深度等。

第二段落,先是提供了大家平时比较熟悉的吞吐量相关的信息,可以直接与厂家宣传的性能去做比较,如平均IOPS=984k,折算的平均带宽为3844MiB/s或4031MB/s。其中我们还可以看到,这个测试的总数据量为2.3TB,测试时长为10分钟(FIO日志中默认的时间单位是毫秒,具体到这个例子为60万毫秒)。

接下来的信息则是比较专业的用户会去关心的了:时延

时延数据首先是三种基本的:slat、clat、lat。其含义各不相同:

slat:指从 fio向系统提交I/O请求,到实际执行 I/O的时长。这一部分主要由服务器处理器和操作系统决定,也SSD的接口协议、工作模式有关。对于在物理服务器上进行的测试,且使用异步IO的情况下,slat的值通常都会很小,1微秒左右,远小于clat的数量级。

clat:是指从 I/O提交到 I/O完成的时长。这一部分主要由SSD决定。但如果设置为同步IO引擎,clat项就没有意义了。在这个例子中,使用的IO引擎是libaio,属于异步IO。

lat:是指从fio创建 I/O 到 I/O完成的时长,相当于slat+clat。

普通观众会比较关注lat和clat的结果,与SSD关系更大。平均时延与SSD的性能、以及设定的队列深度关系最直接,譬如QD=256的情况下,这个例子中的平均读时延大概是260微秒;查看这个SSD在QD=1时的文件,平均读时延则为102微秒——有些SSD宣传的时延参数,指的就是这种情况。建议也留意一下最大值(max)的数据,一般来说数十到数百毫秒的最大值是正常的,但也会遇到部分SSD的最大值会出现数千毫秒甚至更高的情况,就更需要检查日志,包括把日志采样的频率提高。

严肃的用户极为关心第四种时延:clat percentiles,即特定百分位的时延,或者俗称P99、尾时延等。大家都知道,平均数不能代表实际的体验,用户对极端情况更为敏感。不同的用户会根据自身的业务特点、客户类型,确定适合自己的置信区间,譬如比较宽松的用户,关注95%的请求的时延——以上图为例,95%(95.00th)对应的clat为383微秒,意思是95%的IO请求在383微秒内完成;严格的用户,会把标准设定到99%甚至99.99%。

值得一提的是,这里我们仅仅是使用了随机读的数据举例,真正关注QoS的用户其实更关注混合读写的数据,其中的时延数据会与单纯的读、写有着数量级的差异。随着部署分布式存储的用户越来越多,对极端的时延情况愈发敏感,异常的时延会造成整个系统的IO抖动——因为副本之间的强一致性,如果某一个副本响应稍慢,会导致全部IO的时延增加甚至引起IO堆积。对于这样的用户,拿出P99.99、lat(max)这些数据远比平均时延的数据有参考价值。

测试数据文档再往后的数据,包括带宽、IOPS的极大、极小、平均值等,以及时延的统计分布,可以作为一些参考。譬如IOPS的极大值、极小值相差过大(与平均值的偏差超过10%),就说明这个测试没有进入稳态,数据不可信,需要重新进行预处理或安排更多的测试。时延的统计分布P99的情况类似,指定某个特定的时延,看看有多大比例的IO的时延会超限,譬如假定及格线是1毫秒,在上面的例子中,达到这个时延的IO占比低于万分之一。

测试数据处理

查看若干测试结果文件得到的信息是有限的,更多只是大概了解一下特定的数据,譬如前面选择的例子,其实只有最大读IOPS、带宽有参考价值,知道这款SSD的随机读IOPS接近百万级了,是一款主流性能的产品。而其他的数据则很难勾勒出这个SSD的特点,或者参考价值不大。要更全面的了解SSD的情况,需要进行一些数据的汇总和处理,进一步的,我们还要查阅日志文件,并使其变得更直观。

将数据集中起来,会让我们发现一些规律性或者趋势性的信息。继续以随机读测试的数据为例,我们将QD=1~512的IOPS、平均时延数据抄录到电子表格中:

fio测试结果怎么看

此时我们立刻就获得了对SSD性能特点的直观认识:

1、队列深度为1时,IOPS很低。

2、当队列深度逐步倍增时,IOPS也同步倍增,这个趋势至少持续到队列深度32~64的阶段,然后增加幅度趋缓。

3、当队列深度达到256时,IOPS触顶。

4、队列深度32之前,时延相差不大;队列深度64及之后,时延急剧增加。

看到这组数据,我们对这款SSD在当前容量点适宜的工作强度就有了初步的感知了。

为了更为直观,我们还可以通过插入图表的方式让数据可视化。对于这种趋势性的变化,最适合的表现方式就是折线图。

fio测试结果怎么看

在Excel或WPS中,框选前面录入的数据,顶部的菜单选“插入”,图标区域选择折线图。这里要强调一个小技巧:如果希望将队列深度的信息作为横坐标出现,建议将行首那格(之前的Job×Depth)删掉。折线图有多种类型,趋势性的信息通常用“带数据标记的折线图”比较合适。

fio测试结果怎么看

由于两种参数的单位不同,比较省事的做法就是将IOPS和时延分别做成两个折线图。如下就是几秒钟内生成的图表,趋势可以说是非常的直观了。

fio测试结果怎么看

fio测试结果怎么看

如果Excel图表玩的比较顺手了,我们可以进一步添加图表标题、坐标轴说明等,甚至,我们还可以用“组合图”将几种不同性质数据整合在一个图表中,更为方便判读。例如下面这张图给人留下的印象就是:这款SSD处理随机读任务时,合理的负荷应该控制在队列深度128以内,吞吐量大概可以发挥出峰值的九成,时延也没有增加太多,更大的负荷建议增加SSD来解决比较划算。

fio测试结果怎么看

前面举例子的是随机读的数据,我们需要整理的数据还有很多,譬如混合读写的平均时延、顺序读写的带宽等等,用折线图或者柱状图都是可以的。至于混合读写的P99时延这些数据,用三维柱形图表现就很直观。

fio测试结果怎么看

小结

现在我们已经能够判读和处理FIO测试结果文档了。如果希望更深入了解SSD在工作中的状态,尤其是关注QoS的情况,则需要进一步判读日志。下一期,我们将帮助大家梳理那些让人眼花缭乱的日志文档。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处:

(1)
尊云-小张的头像尊云-小张
上一篇 2024 年 5 月 4 日 09:49
下一篇 2024 年 5 月 4 日 09:53

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-900-3935

在线咨询: QQ交谈

邮件:cong@zun.com

工作时间:365天无休服务 24小时在线

添加微信