
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