web-dev-qa-db-ja.com

mdraid11つのディスクからの読み取りのみ

LinuxソフトウェアRAID1に2つの同一のHDDがあります。このRAIDデバイスでほとんど読み取り負荷が発生し、プロセスはほとんどiowaitを示しています。 iotopは、全体で約75%のディスク使用率を示しています。

ここで物理ディスクのディスク使用率を見ると、1つのディスクは約1M/sの読み取りを示し、もう1つのディスクは100K/sの読み取りのみを示しています。/proc/mdstatは、アレイが正常であることを示しています。両方のディスクが等しく使用されていないという問題は何でしょうか?

コメントについて:私は両方を試しました。 2つのスレッドと1つのスレッドで読み取ります。何も変わりません。

3
michael

シーケンシャル読み取りの場合、両方のディスクから読み取ることによるパフォーマンス上の利点はありません。同じデータが両方のディスクにあるため、それぞれが他のディスクによって読み取られたデータを検索する必要があります。しかし、ショートシークフォワードは、すべての中間データを読み取るよりもそれほど高速ではありません。

ただし、複数のプロセスがディスクから異なるデータを並行して読み取る場合は、単一のディスクと比較してパフォーマンスが大幅に向上するはずです。

同じディスクから読み取る2つのプロセスは、通常、交互に実行するたびにコストのかかるシークを引き起こします。 RAID1を使用すると、2つのプロセスが異なるディスクから読み取ることができ、シークの数が大幅に削減されます。

5
kasperd