NFSプロトコルのページキャッシュを無効にする

NFSプロトコルのページキャッシュを無効にする

共有NFSサーバーからファイルを読み取るNFSクライアントがあります。
サーバーはファイル読み取り操作を監視します。
問題は、同じコンピュータから(別のユーザーを使用して)同じファイルを読み取るときです。 NFSプロトコルを介して(クライアントから、したがってサーバー上で)1つのファイル読み取り操作のみを呼び出します。

調査後(このスレッド) - ページキャッシュをクリアすると、次の事実が見つかりました。

echo 1 > /proc/sys/vm/drop_caches

READ FILE ジョブが再び呼び出されます。

カーネル/オペレーティングシステムがNFSプロトコルのページキャッシュを無効にすることを強制できますか?

答え1

不可能。 NFSサーバーでファイルを実行しようとしている場合は、何が起こるのかを想像してみてください。ファイルはメモリにマップされますが、ページキャッシュは許可されていないため、実際にはメモリに読み込まれません。プログラムが実行を開始しますが、メモリマップがRAMにキャッシュされないため、すぐにページエラーが発生します。スターターではありません。さて、ルールを少し緩和して、そのページのページキャッシュを一度だけ埋めることができるとしましょう。 NFS サーバーから RAM に読み込み、ページの不具合を解決してすぐに削除します。プログラムは命令を実行してからページフォールトを再実行できます。

先ほど説明した事故実験よりも少し面倒な方法で動作させることができます。特にread()代わりに一般について話しているのでmmap()そうです。しかし、あなたのソリューションは、まだメモリ動作の基本的な方法とパフォーマンスが完全に一致していません。本当に悪いでしょう。

関連情報