GlusterFSの「direct-io-mode」について理解していただけると助かります。
ダイレクトI/Oモードを無効にすると、より良い読み取り結果が得られます-無効モードでは、キャッシュからの書き込み/読み取りです-それはシステムキャッシュですか、それともGlusterFSキャッシュですか?推奨される方法は何ですか?私は4つのノードを使用して、分散複製ボリュームでWebサービスを提供しています。
Write: dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
echo 3 > /proc/sys/vm/drop_caches
Read: dd if=tempfile of=/dev/null bs=1M count=1024
Read-Read: dd if=tempfile of=/dev/null bs=1M count=1024
Write Read Re-Read
67.5 MB/s 94.9 MB/s 94.6 MB/s direct-io-mode=enabled
65.8 MB/s 230 MB/s 226 MB/s direct-io-mode=disabled
長い検索の後、私は見つけました this 記事。 glusterfs固有ではありませんが、理解を深めるのに役立つ場合があります。つまり、ダイレクトI/Oモードでは、そのマウントポイントのOSによって実装されたファイルバッファーが無効になります。
それを読んだ後、私はこの結論に達しました:
有効または無効にすると、glusterfsボリュームを使用しているアプリケーションに応じて、転送速度が向上する可能性があります。キャッシュを単独で処理するアプリケーションまたはデータベースを使用している場合は、(2番目のバッファーのオーバーヘッドがないため)ブーストが有効になります。 )。ファイルアクセスを実行しているだけの場合は、おそらく無効にすると、ローカルファイルキャッシュによるネットワークアクセスが少なくなるため、パフォーマンスが向上します。