4

カーネルでページキャッシュを回避する方法、アプリケーションはディスクから直接データを読み書きできますか?カーネルで、設定方法は?

4

2 に答える 2

5

O_DIRECT を呼び出すアプリケーションが必要です。マニュアルページからhttp://man7.org/linux/man-pages/man2/open.2.html

これにより、I/O の実行中にページ キャッシュから読み書きしないようにカーネルに指示します。

O_DIRECT (Linux 2.4.10 以降) このファイルとの間の I/O のキャッシュ効果を最小限に抑えようとします。一般に、これはパフォーマンスを低下させますが、アプリケーションが独自のキャッシュを行う場合など、特別な状況で役立ちます。ファイル I/O は、ユーザー空間バッファーとの間で直接行われます。O_DIRECT フラグは、単独でデータを同期的に転送しようとしますが、データと必要なメタデータが転送されることを O_SYNC フラグで保証するものではありません。同期 I/O を保証するには、O_DIRECT に加えて O_SYNC を使用する必要があります。詳細については、以下の注を参照してください。

          A semantically similar (but deprecated) interface for block
          devices is described in raw(8).
于 2016-06-18T02:59:24.297 に答える