NFSクライアント側の属性キャッシュに問題があります。 私はいくつかのサーバーを使用しています.1つはNFSサーバーで、もう1つはNFSクライアントサーバーです。NFSキャッシュクリーニングコマンド?
すべてのサーバはDebian(lenny、Linuxの2.6.26-2-amd64)で、バージョンは以下のとおりです。 NFSサーバで
% dpkg -l | grep nfs
ii libnfsidmap2 0.20-1 An nfs idmapping library
ii nfs-common 1:1.1.2-6lenny1 NFS support files common to client and server
ii nfs-kernel-server 1:1.1.2-6lenny1 support for NFS kernel server
は、/ etc /輸出は以下のように書かれている:
/export-path 192.168.0.0/255.255.255.0(async,rw,no_subtree_check)
をNFSクライアントでは、/ etc/fstabには、以下のように書かれている:
server:/export-path /mountpoint nfs rw,hard,intr,rsize=8192,async 0 0
として「非同期」オプションは、マルチクライアントアクセスのパフォーマンスに使用されています。 ただし、これによって誤ったキャッシングエラーが発生することがあります。
私は多くのサーバーを維持しているので(マウントオプションを変更する権限があまりないため)、/ etc/exportsや/ etc/fstabを変更したくありません。 ユーザー権限でNFSクライアント側の属性キャッシュを "クリーン"するコマンドラインツールがあれば十分だと思います。
このようなコマンドがある場合はお知らせください。
おかげで、
(別記)
私は "偽のキャッシング・エラー" の意味、
% ls -l /data/1/kabe/foo
ls: cannot access /data/1/kabe/foo: No such file or directory
% ssh another-server 'touch /data/1/kabe/foo'
% ls -l /data/1/kabe/foo
ls: cannot access /data/1/kabe/foo: No such file or directory
時々、このようなケースが起こります。 問題はファイルの内容ではなく、ファイル属性(= dentries情報)です。NFSはクローズ・ツー・オープンの一貫性を保証しているからです。
この問題の可能な解決策を調べているうちに、この質問が見つかりました(+1)。 NFSが一貫性を提供できない場合は、ローカルキャッシュを使用しないか、ローカルキャッシュの期限切れ時間を短くするかのどちらかを選択します。ギガビットLANは大きな障害ではないはずなので、パフォーマンスの低下があまり期待できません。理想的な解決策は、サーバがファイルシステムの変更を監視し、キャッシュをフラッシュする必要があるときにクライアントに通知することですが、NFSがこれをサポートしているとは思いません。 – Tronic
ここでは帯域幅は重要ではありませんが、*レイテンシ*であるため、ギガビットLANにはまだパフォーマンスに影響があります。 FWIW、 'lookupcache = none'は' git clone'の時間を2.7秒から20秒に上げました。 –