NFS 分散ファイルサービスは、ローカルコマンドをリモートホストへの要求に変換するリモートプロシージャコール (RPC) 機能を使用します。リモートプロシージャコールは同期しています。つまり、クライアントアプリケーションは、サーバーがコールを完了して結果を返すまでブロックまたは中断されます。NFS の性能に影響を及ぼす重要な要素の 1 つは再伝送率です。
ファイルサーバーがクライアントの要求に応答できない場合、クライアントは指定された回数だけ要求を再伝送して終了します。再伝送されるたびにシステムにオーバーヘッドがかかり、ネットワークトラフィックが増大します。再伝送率が高すぎると、ネットワーク性能が低下します。再伝送率が高い場合は、次のことを調べます。
表 65-3 に、クライアントとサーバーの統計情報を表示するための nfsstat オプションを説明します。
表 65-3 クライアント/サーバー統計情報を表示するためのコマンド|
nfsstat のオプション |
表示されるもの |
|---|---|
|
nfsstat -c |
クライアントの統計情報 |
|
nfsstat -s |
サーバーの統計情報 |
|
netstat -m |
ファイルシステムごとのネットワーク統計情報 |
nfsstat -c を使用するとクライアントの統計情報が表示され、nfsstat -s を使用するとサーバーの統計情報が表示されます。また、netstat -m を使用すると各ファイルシステムのネットワーク統計情報が表示されます。詳細は、nfsstat(1M) のマニュアルページを参照してください。
次の例は、クライアント pluto に関する RPC と NFS のデータを示しています。
$ nfsstat -c
Client rpc:
Connection oriented:
calls badcalls badxids timeouts newcreds badverfs timers
1595799 1511 59 297 0 0 0
cantconn nomem interrupts
1198 0 7
Connectionless:
calls badcalls retrans badxids timeouts newcreds badverfs
80785 3135 25029 193 9543 0 0
timers nomem cantsend
17399 0 0
Client nfs:
calls badcalls clgets cltoomany
1640097 3112 1640097 0
Version 2: (46366 calls)
null getattr setattr root lookup readlink read
0 0% 6589 14% 2202 4% 0 0% 11506 24% 0 0% 7654 16%
wrcache write create remove rename link symlink
0 0% 13297 28% 1081 2% 0 0% 0 0% 0 0% 0 0%
mkdir rmdir readdir statfs
24 0% 0 0% 906 1% 3107 6%
Version 3: (1585571 calls)
null getattr setattr lookup access readlink read
0 0% 508406 32% 10209 0% 263441 16% 400845 25% 3065 0% 117959 7%
write create mkdir symlink mknod remove rmdir
69201 4% 7615 0% 42 0% 16 0% 0 0% 7875 0% 51 0%
rename link readdir readdir+ fsstat fsinfo pathconf
929 0% 597 0% 3986 0% 185145 11% 942 0% 300 0% 583 0%
commit
4364 0%
Client nfs_acl:
Version 2: (3105 calls)
null getacl setacl getattr access
0 0% 0 0% 0 0% 3105 100% 0 0%
Version 3: (5055 calls)
null getacl setacl
0 0% 5055 100% 0 0%
表 65-4 は、nfsstat -c コマンドの出力を示しています。
表 65-4 nfsstat -c コマンドの出力|
フィールド名 |
説明 |
|---|---|
|
calls |
送信された合計コール数 |
|
badcalls |
RPC によって拒否された合計コール数 |
|
retrans |
再伝送の合計回数。このクライアントの場合、再伝送回数は 1 パーセント未満 (6888 回のコールのうち 10 回のタイムアウト)。これは、一時的な障害が原因で発生することがある。1 パーセント以上の値は、問題が発生している場合がある。 |
|
badxid |
1 つの NFS 要求に対して重複する承認を受信した回数 |
|
timeout |
タイムアウトになったコール数 |
|
wait |
クライアントハンドルを利用できないためにコールが待機せざるを得なかった回数 |
|
newcred |
認証情報を再表示しなければならなかった回数 |
|
timers |
タイムアウト値がコールに対して指定されたタイムアウト値以上になった回数 |
|
readlink |
シンボリックリンクに対して読み込まれた回数。この数が大きすぎる (10 パーセントを超える) ときは、シンボリックリンクが多すぎることを示す場合がある。 |
次の例は、nfsstat -m コマンドからの出力を示しています。
pluto$ nfsstat -m
/usr/man from pluto:/export/svr4/man
Flags: vers=2,proto=udp,auth=unix,hard,intr,dynamic,
rsize=8192, wsize=8192,retrans=5
Lookups: srtt=13 (32ms), dev=10 (50ms), cur=6 (120ms)
All: srtt=13 (32ms), dev=10 (50ms), cur=6 (120ms)
表 65-5 は、この nfsstat -m コマンドのミリ秒単位で表示された出力を示しています。
表 65-5 nfsstat -m コマンドの出力|
フィールド名 |
説明 |
|---|---|
|
srtt |
平準化された平均往復時間 |
|
dev |
平均偏差 |
|
cur |
現在の「予想」応答時間 |