持续testinglinux的io

我希望长时间地将某些磁盘的io打成一团,并且每当我无法读取某个块(或其他一些让我知道后端存储问题的症状)时,都会意识到这一点。 有一些基准testing工具可以写几秒钟,并显示结果,但我想做长期的testing。

到目前为止,我能想到的是通过dd写入磁盘并从该文件读取到/ dev / zero。 我需要循环它,以便在完成初始运行后继续读取和写入。 至于洞察磁盘健康,我想dd可能会终止,如果它不能读取或写入? 否则我可能不知道是否有问题。

另一个想法是在循环中运行bonnie ++。 很难说出后台正在做什么,以及它实际上使用多lessram而不是磁盘(似乎他们试图通过告诉你有大量的数据写入,比你的内存分配大)来解决这个问题。 那么,它给你的输出是很难看的。 但是,如果我使用bash循环来不断运行它,这应该足以用于书写和阅读。

思考?

如何进行validation和基于时间的工作量? 我在想这样的事情

 fio --name=2h --direct=1 --filename=/dev/sdz --verify=crc32c-intel --verify_fatal=1 --time_based=1 --runtime=2h --rw=write 

这将绕过块caching(/ dev / sdz)随机写入/ dev / sdz(从而破坏/ dev / sdz的内容)。 / dev / sdz写完后,其内容将被读回并validation。 这个过程将会持续两个小时,每一次完成之前都会重复前面的步骤。 这显然是不完美的(例如,即使第一次写通过在两个小时结束时也不能完成),但是它提供了一些想法…

如果你正在做某种存储I / Otesting,那么fio往往值得一看 。