持续 io 测试 Linux

持续 io 测试 Linux

我希望长时间测试某些磁盘的 io,并在无法读取某个块时(或者出现其他症状让我知道后端存储存在问题)及时发现。有些基准测试工具可以写入几秒钟并显示结果,但我想进行长期测试。

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

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

有什么想法吗?

答案1

怎么样fio需要验证和基于时间的工作量?我在想

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

这将绕过块缓存对 /dev/sdz 进行随机写入(从而破坏 /dev/sdz 的内容)。在 /dev/sdz 完全写入后,将读回并验证其内容。此过程将持续两个小时,每次完成后都会重复前面的步骤。这显然是不完美的(例如,不能保证第一个写入过程会在两个小时结束时完成等),但它提供了一些想法...

如果你正在做某种事情存储 I/O 测试,那么 fio 通常值得一看

相关内容