我正在测试作业数量,并希望获得每个不同作业数量的总I / O吞吐量
作业编号应与总I / O吞吐量正相关
我在SSD工作站进行的测试如下所示 结果没有任何意义,因为1个作业的I / O吞吐量大于多个作业数
然而,当我使用虚拟盒(配置了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
我做错了吗? 我相信我在这种情况下使用了错误的参数。
答案 0 :(得分:0)
fio -numjobs bigger, the iops will be smaller, the reason is?上的答案可能会提供一些适用的信息。但是,当您使用SSD时,请注意您的iodepth(32)有点与您可以拥有的典型SATA命令数相匹配。这意味着,如果您的第一份工作已经产生了最大吞吐量,并且您已经深入到收益递减之中,那么添加更多同时工作只会导致更多的排队,这意味着更多的延迟。所有额外的工作都没有产生效益,但却在攫取资源,这意味着你不能提交可以快速处理的I / O,因此性能已经过去了。
答案 1 :(得分:0)
我找到答案,原因是使用FIO的正确方法 如果我们异步使用FIO,则深度数应该增加,如果FIO设置为同步,则应增加作业数以增加吞吐量。