我们有5个东芝Px04Srb192 SSD(270 K随机读取IOP按规格),设置在硬件Raid5。运行fio是给250 K IOP,这是远远低于我的预期。
/fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=/ae/disk1/test --bs=4k --iodepth=96 --numjobs=1 --size=8g --readwrite=randread
test: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=96
fio-2.0.9
Starting 1 process
Jobs: 1 (f=1): [r] [100.0% done] [961.6M/0K /s] [246K/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=342604: Tue Feb 12 23:58:01 2019
read : io=8192.0MB, bw=991796KB/s, iops=247948 , runt= 8458msec
cpu : usr=10.88%, sys=87.74%, ctx=437, majf=0, minf=115
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
issued : total=r=2097152/w=0/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
READ: io=8192.0MB, aggrb=991795KB/s, minb=991795KB/s, maxb=991795KB/s, mint=8458msec, maxt=8458msec
Disk stats (read/write):
sdb: ios=2083688/0, merge=0/0, ticks=265238/0, in_queue=265020, util=98.53
lspci -nn | grep RAID
18:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3508 [1000:0016] (rev 01)我原以为5个SSD的IOPs至少是个人SSD的2倍。是那么回事吗?有什么建议可以解释为什么我们看到低IOP吗?
发布于 2019-02-14 06:24:29
(你的fio版本很古老!请参阅https://github.com/axboe/fio/releases以查看上游已达到什么程度.)
你在其他答案中得到的反馈是好的,但我想强调这一点:
cpu : usr=10.88%, sys=87.74%, ctx=437, majf=0, minf=115如果我们将您的用户空间和内核系统百分比相加,我们将得到98.62%。有一个强烈的建议是,您没有更多的CPU时间来发送更多的I/O(请注意,您已经在使用我通常反对的更快的gtod_reduce=1条,但在您的情况下,它看起来是合适的)。
不过还有几件事..。
sdb: ios=2083688/0, merge=0/0, ticks=265238/0, in_queue=265020, util=98.53这意味着您的RAID控制器呈现的“磁盘”非常繁忙(看看util百分比)。这是需要记住的事情。
您是否通过文件系统(/ae/disk1/)中的文件执行I/O操作?如果是这样的话,您是否知道文件系统会增加一些开销,并且可能不会提供您所期望的O_DIRECT行为?您可能希望从在块级别(即/dev/sdb)执行I/O开始,并以您的方式来确定任何开销是什么(警告:小心--如果使用不当,fio可能会破坏数据)。
如果你真的要走得更快,我想你需要:
numjobs)。这样,fio线程/进程可能会迁移到不同的CPU(但请注意,一切都需要付出代价).正如我所说,大多数人都需要这么长的时间,这是很少见的,但也许你是例外之一:-)。fio邮件列表中的线程回复"推荐的压力测试工作文件PCI“提到了以下内容:
您可能会看到使用线程(线程)而不是进程的好处(每个磁盘的负载更多)。每个磁盘还可能需要使用多个线程。有关更多选项,请参见http://fio.readthedocs.io/en/latest/fio_doc.html。https://www.spinics.net/lists/fio/msg05451.html和http://marc.info/?l=linux-kernel&m=140313968523237&w=2都给出了使用fio驱动高负载的人的例子,因此这些示例可能更有用。
https://serverfault.com/questions/953632
复制相似问题