持続的な io テスト Linux

持続的な io テスト Linux

ディスクの IO を長時間にわたって使用し、ブロックから読み取れない (またはバックエンド ストレージの問題を知らせるその他の症状) 場合に気付くようにしたいと考えています。数秒間書き込み、結果を表示するベンチマーク ツールがいくつかありますが、私は長期的なテストを行いたいと思っています。

今のところ、私が考えられるのは、 dd 経由でディスクに書き込み、そのファイルから /dev/zero に読み込むことです。最初の実行が終了した後も読み取りと書き込みを継続するには、ループする必要があります。ディスクの状態を把握するには、読み取りまたは書き込みができない場合は dd が終了する可能性があると思います。そうしないと、問題があるかどうかわからない場合があります。

もう一つのアイデアは、bonnie++ をループで実行することです。バックグラウンドで何が行われているのか、ディスクではなく実際にどのくらいの RAM を使用しているのかを知るのは困難です (RAM 割り当てよりも大きい大量のデータを書き込むように指示することで、この問題を回避しようとしているようです)。次に、表示される出力は非常に読みにくいです。しかし、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 が完全に書き込まれた後、その内容が読み戻されて検証されます。このプロセスは 2 時間継続され、終了するたびに前の手順が繰り返されます。これは明らかに不完全ですが (たとえば、最初の書き込みパスが 2 時間の終わりまでに完了する保証はありません)、いくつかのアイデアが提供されます...

もしあなたが何らかのストレージI/Oテストならfioが役に立つことが多い

関連情報