私はさまざまなファイルシステムをいじり、mmap を使用したときのさまざまなファイルシステムのパフォーマンスを比較してきました。
JFS に変更すると、書き込みパフォーマンスがすぐに 2 倍になったことに驚いています。ページキャッシュへの書き込みが行われたと思ったので、書き込みが完了するとアプリはすぐに動き続けますか? それは実際にはLinuxでの同期操作ですか?
読み取りパフォーマンスがわずかに向上しますが、それほど重要ではありません。
私はさまざまなファイルシステムをいじり、mmap を使用したときのさまざまなファイルシステムのパフォーマンスを比較してきました。
JFS に変更すると、書き込みパフォーマンスがすぐに 2 倍になったことに驚いています。ページキャッシュへの書き込みが行われたと思ったので、書き込みが完了するとアプリはすぐに動き続けますか? それは実際にはLinuxでの同期操作ですか?
読み取りパフォーマンスがわずかに向上しますが、それほど重要ではありません。
書き込みはページ キャッシュに直接行われますが、書き込みで各ページに初めてヒットすると、マイナー フォールトが発生してページがダーティとしてマークされます。この時点で、ファイルシステムはいくつかの作業を実行する機会があります。 の場合xfs
、これには遅延割り当てアカウンティングとエクステント作成が含まれます。事前にファイル全体を事前に割り当てて、これがどのように変化するかを確認することができます。(jfs
ページが書き込み可能になったときに使用されるコールバックを提供しない、一般的な mmap 操作を使用します)。
また、ダーティ ページキャッシュ ページの割合が を超える/proc/sys/vm/dirty_ratio
と、カーネルはダーティ ページをダーティにしたプロセスによって、バックグラウンドの非同期ライトバックからダーティ ページの同期ライトバックに切り替えます。
XFS と JFS の大きな違いの 1 つは、XFS がバリアをサポートし、デフォルトで有効にすることですが、JFS はバリアをまったくサポートしないことです。したがって、JFS は、ライトバック キャッシュを備えたディスクで実行する場合、安全ではありません (しかし高速です!)。
テストで JFS の書き込みパフォーマンスが向上したのは、この影響かもしれません。
おそらく、各ファイルシステムのベンチマークを確認する必要があります。各FSは、特定の条件では高速です。
http://fsbench.netnation.com/は、私の Google で xfs jfs ベンチマークの最初のヒットの 1 つでした。結果をざっと見てみると、多くの場合、xfs の方が高速であることがわかります。
ターゲット マシンでベンチマークを実行して、自分で確認することをお勧めします。
1 つの推測では、お気づきの速度向上は、jfs の最良のケースの領域にある可能性が非常に高いということです。