NFS 分散型ファイルサービスは、ローカルコマンドをリモートホストへの要求に変換する、リモート手続き呼び出し (RPC) 機能を使用します。リモート手続き呼び出しは同期型の呼び出しです。つまり、サーバーが呼び出しを完了してその結果を返すまで、クライアントアプリケーションはブロックまたは中断されます。NFS のパフォーマンスに影響を与える主要な要素の 1 つに再伝送率があります。
ファイルサーバーがクライアントの要求に応答できない場合、そのクライアントは、指定された回数だけ要求を再伝送して終了します。再伝送のたびにシステムにオーバーヘッドがかかり、ネットワークトラフィックが増加します。過度の再伝送はネットワークのパフォーマンスを低下させます。再伝送率が高い場合、次を調べてください。
表 46-3 に、クライアントとサーバーの統計情報を表示するための nfsstat コマンドのオプションとその説明を示します。
表 46-3 クライアントとサーバーの統計情報を表示するためのコマンド|
コマンド |
表示される情報 |
|---|---|
|
nfsstat -c |
クライアントの統計情報 |
|
nfsstat -s |
サーバーの統計情報 |
|
netstat -m |
ファイルシステムごとのネットワーク統計情報 |
クライアントの統計情報を表示するには nfsstat -c を使用し、サーバーの統計情報を表示するには nfsstat -s を使用します。また、ファイルシステムごとのネットワークの統計情報を表示するには、nfsstat -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%
|
表 46-4 に、nfsstat -c コマンドの出力とその説明を示します。
表 46-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)
|
表 46-5 に、ミリ秒単位で表示される nfsstat -m コマンドの出力を示します。
表 46-5 nfsstat -m コマンドの出力|
列 |
説明 |
|---|---|
|
srtt |
平準化された平均往復時間 |
|
dev |
平均偏差 |
|
cur |
現在の「予測」応答時間 |