Solaris のシステム管理 (第 2 巻)

NFS サーバーとクライアントの統計情報を表示する方法

NFS 分散ファイルサービスは、ローカルコマンドをリモートホストへの要求に変換するリモートプロシージャコール (RPC) 機能を使用します。リモートプロシージャコールは同期しています。つまり、クライアントアプリケーションは、サーバーがコールを完了して結果を返すまでブロックまたは中断されます。NFS の性能に影響を及ぼす重要な要素の 1 つは再伝送率です。

ファイルサーバーがクライアントの要求に応答できない場合、クライアントは指定された回数だけ要求を再伝送して終了します。再伝送されるたびにシステムにオーバーヘッドがかかり、ネットワークトラフィックが増大します。再伝送率が高すぎると、ネットワーク性能が低下します。再伝送率が高い場合は、次のことを調べます。

表 27-3 に、クライアントとサーバーの統計情報を表示するための nfsstat オプションを説明します。

表 27-3 クライアント/サーバー統計情報を表示するためのコマンド

オプション 

表示される情報 

nfsstat -c

クライアントの統計情報 

nfsstat -s

サーバーの統計情報 

netstat -m

ファイルシステムごとのネットワーク統計情報 

nfsstat -c を使用するとクライアントの統計情報が表示され、nfsstat -s を使用するとサーバーの統計情報が表示されます。また、netstat -m を使用すると、各ファイルシステムのネットワーク統計情報が表示されます。詳細は、nfsstat(1M) のマニュアルページを参照してください。

例 - NFS サーバーとクライアントの統計情報を表示する

次の例は、クライアント 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%    

表 27-4 は、nfsstat -c コマンドの出力を示しています。

表 27-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)

表 27-5 は、この nfsstat -m コマンドのミリ秒単位で表示された出力を示しています。

表 27-5 nfsstat -m コマンドの出力

フィールド名 

説明 

srtt

平準化された平均往復時間 

dev

平均偏差 

cur

現在の「予想」応答時間 

ネットワークのハードウェア構成要素が問題の原因と思われる場合は、ケーブルとコネクタを慎重に調べる必要があります。