ファイルシステムタイプをXFSからJFSに変更すると、MMAPファイルの書き込みパフォーマンスが増加するのはなぜですか?
-
29-10-2019 - |
質問
MMAPを使用する際に、さまざまなファイルシステムを使用して、さまざまなファイルシステムのパフォーマンスを比較しています。
JFSに変更すると、書き込みパフォーマンスがまっすぐになったことに驚いています。ページキャッシュに書き込みが行われたと思ったので、書き込みが完了すると、アプリはすぐに動き続けますか?実際にLinuxの下での同期操作ですか?
読み取りパフォーマンスのわずかな増加ですが、それほど重要ではありません。
解決
書いている それは ページキャッシュにまっすぐに行われますが、最初に各ページを書き込みでヒットしたときに、ページを汚れたものとしてマークするわずかな障害が発生します。この時点で、ファイルシステムはいくつかの作業を実行する機会があります - xfs
, 、これには、配分会計の遅延と範囲の作成が含まれます。事前にファイル全体を事前に表示して、これが物事をどのように変更するかを確認することができます。 (jfs
一般的なMMAP操作を使用します。これは、ページが書き込み可能になったときに使用されるコールバックを提供しません)。
汚れたpagecacheページの割合が超えた場合にも注意してください /proc/sys/vm/dirty_ratio
, 、カーネルは、背景の非同期書き込みから、汚れたページの同期書き込みに切り替えます。
他のヒント
おそらく、各ファイルシステムのベンチマークを見る必要があります。各FSは、特定の条件で高速です。
http://fsbench.netnation.com/ XFS JFSベンチマークのGoogleでの最初のヒットの1つでした。結果をスキミングすると、多くの場合、XFS運賃が高速で運賃が優れていることを示唆しているようです。
ターゲットマシンでベンチマークを実行して自分で確認することをお勧めします。
推測の1つは、あなたが気づいたスピードアップがJFSの最良のケースエリアに非常によくある可能性があることです。
XFSとJFSの大きな違いの1つは、XFSが障壁をサポートし、デフォルトでそれらを有効にすることですが、JFSは障壁をまったくサポートしていません。したがって、JFSは、書き込みバックキャッシュを使用してディスクで実行する場合、安全ではありません(ただし、高速です!)。
テストでパフォーマンスの書き込みを改善するJFSは、これの影響かもしれません。