あのベンチマークを真剣に受け止めるのは難しいね。ZFSやbtrfs、そして多分bcachefs(使ったことないから意見はないけど)は、XFSやEXT4ができないことをやってるんだ。ZFSについては他より詳しいけど、ここではZFSがashift=9か12かは指定されてなかった。自動検出を試みるけど、それがうまくいかないこともある。ashift=9だと、ZFSは512バイトで物理I/Oを行っていることになるから、nvmeのエミュレーションモードになる。もしかしたらashift=12かもしれないけど、分からない。次に、ZFSはデフォルトで128kのレコードサイズを持ってる。大きなファイルを書いたら、128kサイズの「チャンク」で書かれるんだ。それから4kのブロックサイズでランダムな読み書きI/Oベンチマークを実行すると、ZFSは毎回4kのI/Oに対して128kを読み書きすることになる。これは大きな増幅係数だよ。もしZFSをランダムブロックI/Oに似た負荷で使うなら、アプリのI/Oに合わせてrecordsizeを調整した方がいい。ZFSはこれを簡単にしてくれるし、子ファイルシステムの作成は非常に安価で、ファイルシステムごとにrecordsizeを調整できるんだ。それに、ZFSがやることはXFSやEXT4ができないこともある。例えば、5分ごとにスナップショットを取ること(ほぼ無料)、ストリーミング増分スナップショットバックアップ、スナップショットのクローン作成など、RAIDの柔軟性に入る前に。