レスありがとうございます。最近NFSを利用している
クライアントマシンから「NFSが気絶してる」という
苦情を受けるので、使い方を聞いてみたら10000個ほどの
10MB程度のファイルを次々と grep しただけ、とのこと。
しかも1ファイルごとに100回くらい読み直したとのコト。

せめてクライアント側でキャッシュが有効なら同じファイル
100個読むのは別に負荷じゃないよなぁとおもったのです。

さきほど nfsstat をサーバ側でやってみたら、

Server nfs v3:
null getattr setattr lookup access readlink
6 0% 18278453 80% 143964 0% 781712 3% 2524218 11% 0 0%
read write create mkdir symlink mknod
352987 1% 455073 1% 54698 0% 6321 0% 0 0% 0 0%
remove rmdir rename link readdir readdirplus
51737 0% 5598 0% 88 0% 0 0% 107265 0% 27950 0%
fsstat fsinfo pathconf commit
8 0% 2 0% 0 0% 17191 0%

うむむ、getattr だけで 80% らしい。80% というのが回数なのか
そのコールを処理するのにかかった時間なのかわかりませんが、
なんにせよ getattr 恐るべし。man 5 nfs によるとディレクトリ
エントリがらみのキャッシュ時間を設定しろということなのでしょうか。

うちの使い方では関係ないですが、ディレクトリエントリを
キャッシュしちゃうとロックファイルのような使い方を
してるアプリケーションにとってはまずいことがおきる?