我可以强制使用 fio 输出中同步百分位数的特定度量单位吗?

我可以强制使用 fio 输出中同步百分位数的特定度量单位吗?

我用fio 3-13它来对 SSD 进行基准测试。作业文件包含多个要按顺序运行的作业(使用参数stonewall),但它们都包含fdatasync=1。因此,输出报告了fdatasync持续时间百分位数,我对解析它们很感兴趣。

问题是,为了保持宽度大致不变,fio会以不同的度量单位(微秒和毫秒)报告它们。有没有办法强制 fio 始终采用特定的度量单位?这就是输出的情况,它始终以微秒为terse单位报告和百分位数。不幸的是,输出不报告百分位数。latslatclattersefdatasync

答案1

有没有办法强制 fio 始终采用特定的计量单位?

对于 fio 的人类可读输出来说,这实际上并不是如此,但是对于其机器可读的输出格式,单位大小是固定的。

Fio 的人类可读输出并非设计为可抓取的,并且没有办法强制单元处于该输出模式,除非更改 fio 的源代码并重新编译。但是,强烈建议您切换 fio 以使用机器可读的输出格式(例如通过使用--output-format=json+所以你也获得延迟输出) 因为(正如问题中提到的)该单位是固定的,具有这样的输出格式。

如果你决定无论如何都要抓取未修改的 fio 的可读输出,那么你必须找到一种编程方法来应对不断变化的单位,但请参阅“基准测试出了问题”布伦丹·格雷格 (Brendan Gregg) 在 2013 年 Surge 闪电演讲中发出警告......

(Matteo 最初在“强制同步百分位数测量单位”fio 邮件列表发帖并且那里也有回复)

相关内容