アレイを拡張した後、Linux 上の ZFS の転送速度が誤って報告されるのはなぜですか?

アレイを拡張した後、Linux 上の ZFS の転送速度が誤って報告されるのはなぜですか?

NAS サーバーの 4 ドライブ Raidz アレイのドライブをアップグレードしたところ、アレイは新しいサイズに自動的に拡張されました。NAS サーバーからの転送速度をテストしたところ、大量の読み取り転送を実行するとパフォーマンスが低下し、iotop と zpool iostat は 500MB/秒という非常に高い数値を報告できるにもかかわらず、10MB/秒を超えるのに苦労していることがわかりました。この奇妙な動作の原因は何でしょうか。アレイをアップグレードしているときに、デバイスが 4 台オンラインの場合も 3 台に低下した場合も、パフォーマンスは同じであることがわかりました。

サーバーは単一のギガビットネットワーク接続で接続されており、ext4を使用した単一のドライブで飽和させることができます。

答え1

キャッシュ設定をいろいろ試していたところ、プライマリキャッシュをオフにしていたため、実際のIOが論理IOよりはるかに大きくなる可能性があることがわかりました。

[アプリケーション] はファイルを読み取り、4k (ページサイズ?) のデータを取得して処理し、次に次の 4k を読み取ります。

ただし、ZFS は 4k だけを読み取ることはできません。デフォルトでは 128k (レコードサイズ) を読み取ります。キャッシュがないため (オフにしているため)、残りのデータは破棄されます。

128k / 4k = 32

32 x 2.44GB = 78.08GB

からFreeBSD フォーラム

関連情報