GNU/Linux >> Linux の 問題 >  >> Linux

LinuxがNfs共有上の1つのファイルのキャッシュをフラッシュするように強制するコマンド?

StackOverflowに関するこの質問に関連して、NFSキャッシュをフラッシュする方法、またはLinuxにNFS共有上にあるファイルの最新のコピーを表示させる方法があるかどうか疑問に思っています。

4台のApacheサーバーがNFS経由で同じディレクトリをマウントし、1台のサーバーがファイルに変更を加えた場合、他のサーバーがその変更を確認するのに約5〜10秒かかるという状況があります。このウィンドウ内でそのファイルに2回目の変更が加えられると、最初の変更が上書きされる可能性があります。

fstab ファイルシステムのエントリは次のとおりです。

172.16.1.15:/home               /media/home     nfs     vers=3,defaults,noauto,sync,acregmin=1          0       0

LinuxにNFS共有上の1つのファイルのキャッシュをフラッシュさせるコマンドはありますか?

承認された回答:

これらの項目をチェックして、何かうまくいくかどうかを確認してください:

  1. クライアント上ctoをまだ使用していない場合 オプションのオプション /etc/fstabの列 NFSファイルシステムの行を追加します。 cto nfsクライアントにclose-to-openを介してファイルを開くように指示します。これにより、ファイルを開くたびにファイルが更新されます。

  2. サーバー上 、ファイルシステムがsyncでエクスポートされていることを確認してください オプションであり、asyncではありません 。同期書き込みでは、ファイルが閉じられたときにクライアントがディスクにフラッシュします。 (またはnfs V3では、commit()が行われるたびに )。その方法でパフォーマンスが低下する可能性がありますが、NFSファイルシステムへの書き込みを行う場合は、必ずsyncが必要です。 セット。

  3. そのstackoverflowの投稿に続いて、O_DIRECTでファイルを開くことは、カーネルがCONFIG_NFS_DIRECTIOでコンパイルされた場合にのみ機能します。

  4. また、httpd.confファイルに次の設定があることを確認してください。

    • EnableMMAP off
    • EnableSendfile off

    apacheパフォーマンスチューニングドキュメントから:

    • NFSマウントされたファイルシステムにあるファイルをメモリマップし、別のNFSクライアントマシン上のプロセスがファイルを削除または切り捨てた場合、次にマップされたファイルコンテンツにアクセスしようとしたときに、プロセスでバスエラーが発生する可能性があります。
    • EnableSendfileをオフにしても、NFSの同期/非同期動作には特に役立ちませんが、NFSでapacheを使用している場合はオフにする必要があります。

Linux
  1. Linuxファイルシステムの種類の説明、どちらを使用する必要があるか

  2. Linuxwcコマンド

  3. その中にディレクトリとファイルを作成するための1つのコマンドlinuxコマンド

  1. Linuxgrepコマンド

  2. Linux での ln コマンドの例

  3. Linux での file コマンドの例

  1. autofsを使用してLinuxでNFS共有を自動マウントする

  2. Linuxでの8つのヘッドコマンドの例

  3. Linuxでの8つのStatコマンドの例