ブロックデバイスにアクセスすると、O_DIRECTフラグはLinuxページキャッシュもバイパスしますか?

ブロックデバイスにアクセスすると、O_DIRECTフラグはLinuxページキャッシュもバイパスしますか?

私は以下を使用してハードディスクイメージを開く多くのKVM仮想マシンを実行しています。O_DIRECTバナー。

私が知る限り、マニュアルページによると、usingはファイルに書き込むときにLinuxページキャッシュをバイパスしようとしますが、open()これはブロックデバイスにも当てはまりますか?O_DIRECT(たとえば、ハードディスクイメージがLVMボリュームまたはZFS zvolの場合)

注:ここでのユースケースO_DIRECTは、ゲストがすでに独自のページキャッシュを維持しているため、ホストに複製する必要がないことです。

ベストアンサー1

答えは「はい」のようです。 O_DIRECTでブロックデバイスを開くと、ページキャッシュもバイパスされます。私は2009年にその答えを見つけましたLinuxページのキャッシュに関するブログ投稿

ページキャッシュは、Linux上のO_DIRECTまたはWindows上のNO_BUFFERINGを使用してバイパスすることができます。これは、データベースソフトウェアでしばしば行われます。

おすすめ記事