正确使用FIO(灵活IO测试仪)进行I / O吞吐量的方法

时间:2017-07-29 20:19:32

标签: linux

我正在测试作业数量,并希望获得每个不同作业数量的总I / O吞吐量

作业编号应与总I / O吞吐量正相关

我在SSD工作站进行的测试如下所示 结果没有任何意义,因为1个作业的I / O吞吐量大于多个作业数

FIO Test Result using SSD

然而,当我使用虚拟盒(配置了SSD)在我的macbook中测试它时,结果是不同的

FIO Test Result using Virtual Box

这是我在测试中使用的FIO参数

   filename=/dev/sdd
    bs=4k
    numjobs=1 ~ 64
    iodepth=32
    direct=1
    ioengine=libaio
    rw=read
    runtime=20
    group_reporting=1

我做错了吗? 我相信我在这种情况下使用了错误的参数。

2 个答案:

答案 0 :(得分:0)

fio -numjobs bigger, the iops will be smaller, the reason is?上的答案可能会提供一些适用的信息。但是,当您使用SSD时,请注意您的iodepth(32)有点与您可以拥有的典型SATA命令数相匹配。这意味着,如果您的第一份工作已经产生了最大吞吐量,并且您已经深入到收益递减之中,那么添加更多同时工作只会导致更多的排队,这意味着更多的延迟。所有额外的工作都没有产生效益,但却在攫取资源,这意味着你不能提交可以快速处理的I / O,因此性能已经过去了。

答案 1 :(得分:0)

我找到答案,原因是使用FIO的正确方法 如果我们异步使用FIO,则深度数应该增加,如果FIO设置为同步,则应增加作业数以增加吞吐量。