異なるキュー深度での予期しない ZFS 非同期書き込みパフォーマンス

異なるキュー深度での予期しない ZFS 非同期書き込みパフォーマンス

何らかの理由で、生の IOPS に関しては QD2 が最高のようです...

興味深い記事を見てSLOG 使用のためのいくつかの異なるドライブの比較、私は自分のシステムのパフォーマンスがさまざまなキュー深度でどうなるのか興味を持ちました。

システムは、i9-13900K、128GB DDR5-4800 システム メモリ、および単一のミラーリングされた Vdev として 2 つの Samsung 980 PRO で構成されています。テストは、ProxMox 7 上のコンテナーで次の構成で FIO を実行しています。

fio --name=random-write --ioengine=posixaio --rw=randwrite --bs=<4k/8k> --numjobs=1 --size=8g --iodepth=<1/2/4/8> --runtime=30 --time_based

奇妙なことに気づいたのは、非同期書き込み中、キュー深度が 2 のときに常に最高のパフォーマンスが得られることでした。圧縮、ブロック サイズ、レコード サイズの組み合わせをいくつか試しましたが、QD2 が常に最高の IOPS スコアを示しました... キュー深度が高ければさらに良くなると予想していましたが、何か見落としているのでしょうか? (ドライブごとに NAND チップが 2 つしかないことに関係しているのでしょうか?)

ashift=12 の設定と上記に記載されている内容以外に、特定の ZFS チューニングは実行されていません。

ZFS 非同期書き込みが QD1、QD4、QD8 と比較して QD2 で最もうまく機能するように見える理由を知っている人はいますか?

さて、グラフです!これらは私が試した 216 通りの組み合わせの平均結果です。

IOPS とレコードサイズ (レコード サイズが 16k だとなぜ最悪なのかは私にはわかりません) IOPS と FIO ブロックサイズ (ブロックサイズが8kでも、全体としては帯域幅IOPSと圧縮

ZstdがLZ4に勝っているのにはちょっと驚きました。おそらく、この貧弱なSSDのIO限界に達しているのでしょうか?実際のテスト中、SSD アクティビティは通常 400 ~ 700 MB/秒に達しました。

注意: すべてのテスト中、CPU ガバナーは「パフォーマンス」に設定されていましたが、「省電力」に設定すると、IOPS の数値は 30 ~ 50% 悪化しました。

関連情報