NFSの統計情報
はじめに
メモ書きです。間違っている箇所があるかもしれませんが、ご容赦ください。
調査方法
クライアントとサーバ側でそれぞれ取得出来る情報でわけてみます。
NFSクライアント
nfsstat
nfsstatコマンドは、NFS の統計情報を表示するコマンドです。オプションを使い分ける事で、サーバ側とクライアント側の統計情報を見る事が出来ます。
/proc/net/rpc/nfs のデータを利用しています。
オプションの意味
-s サーバ側の統計のみを表示する。デフォルトではサーバとクライアント両者の統計を表示する。 -c クライアント側の統計のみを表示する。 -n NFS の統計のみを表示する。デフォルトでは NFS と RPC 両者の情報を表示する。 -r RPC の統計のみを表示する。
# nfsstat -c Client rpc stats: calls retrans authrefrsh 450 2 452 Client nfs v4: null read write commit open open_conf 0 0% 56 0% 40 0% 0 0% 48 0% 19 0% open_noat open_dgrd close setattr fsinfo renew 0 0% 0 0% 585996 0% 36112 0% 6 0% 0 0% setclntid confirm lock lockt locku access 1 0% 1 0% 616957 0% 0 0% 35 0% 2 0% getattr lookup lookup_root remove rename link 865149 0% 6130763 2% 2 0% 8 0% 13 0% 0 0% symlink create pathconf statfs readlink readdir 0 0% 1 0% 4 0% 584 0% 0 0% 623 94% server_caps delegreturn getacl setacl fs_locations rel_lkowner 10 0% 0 0% 0 0% 0 0% 0 0% 598877 0% secinfo exchange_id create_ses destroy_ses sequence get_lease_t 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% reclaim_comp layoutget getdevinfo layoutcommit layoutreturn getdevlist 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% (null) 0 0% #
# cat /proc/net/rpc/nfs net 0 0 0 0 rpc 662 2 484 proc2 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 proc3 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 proc4 48 0 75 15 0 59 55 0 0 708 04 6 0 1 1 57 0 55 4 23 48 2 13 11 0 0 1 4 56 0 783 10 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0 #
-m オプションを使う事で、マウントポジションのオプションもわかる
# nfsstat -m /var/www from 192.168.1.1:/var/www Flags: rw,relatime,vers=4,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.2,minorversion=0,local_lock=none,addr=192.168.1.1 #
nfsiostat
nfsiostatコマンドは、マウントポジション毎の iostat をエミュレートしてくれるコマンドです。 普段から iostat を見ている人であれば、馴染みやすいですね。
# nfsiostat 1 192.168.1.1:/var/www: op/s rpc bklog 1499.72 0.00 read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) 4.787 21.138 4.415 0 (0.0%) 2.601 2.750 write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) 4.047 21.863 5.403 0 (0.0%) 27.929 27.960 192.168.1.1:/var/www: op/s rpc bklog 0.00 0.00 read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) 0.000 0.000 0.000 0 (0.0%) 0.000 0.000 write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) 0.000 0.000 0.000 0 (0.0%) 0.000 0.000 192.168.1.1:/var/www: op/s rpc bklog 12.00 0.00 read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) 2.000 4.184 2.092 0 (0.0%) 0.000 0.000 write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) 1.000 2.723 2.723 0 (0.0%) 30.000 30.000
見慣れないパラメータの意味。
上から、再送回数、クライアントからRPCリクエストが受信されるまでの平均時間、クライアントからRPCリクエストが完了するまでの時間。
- retrans This is the number of retransmissions. - avg RTT (ms) This is the duration from the time that client's kernel sends the RPC request until the time it receives the reply. - avg exe (ms) This is the duration from the time that NFS client does the RPC request to its kernel until the RPC request is completed, this includes the RTT time above.
サーバ側
nfsstat
クライアント側で紹介した nfsstat コマンドのサーバ側で実行した場合の出力 こちらは /proc/net/rpc/nfsd のデータを利用しています。
$ sudo nfsstat -s Server rpc stats: calls badcalls badclnt badauth xdrcall 629 0 0 0 0 Server nfs v4: null compound 4 0% 608 99% Server nfs v4 operations: op0-unused op1-unused op2-future access close commit 0 0% 0 0% 0 0% 3 0% 6 0% 0 0% create delegpurge delegreturn getattr getfh link 1 0% 0 0% 0 0% 40 1% 42 1% 0 0% lock lockt locku lookup lookup_root nverify 15 0% 0 0% 4 0% 47 1% 0 0% 0 0% open openattr open_conf open_dgrd putfh putpubfh 12 0% 0 0% 3 0% 0 0% 459 48% 0 0% putrootfh read readdir readlink remove rename 4 0% 25 0% 856 46% 0 0% 9 0% 5 0% renew restorefh savefh secinfo setattr setcltid 2 0% 0 0% 5 0% 0 0% 3 0% 3 0% setcltidconf verify write rellockowner bc_ctl bind_conn 3 0% 0 0% 4 0% 17 0% 0 0% 0 0% exchange_id create_ses destroy_ses free_stateid getdirdeleg getdevinfo 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% getdevlist layoutcommit layoutget layoutreturn secinfononam sequence 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% set_ssv test_stateid want_deleg destroy_clid reclaim_comp 0 0% 0 0% 0 0% 0 0% 0 0% $
# cat /proc/net/rpc/nfsd rc 0 2891 2622 fh 0 0 0 0 0 io 2551 1159 th 8 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ra 32 0 0 0 0 0 0 0 0 0 0 0 net 321 0 512 4 rpc 279 0 0 0 0 proc2 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 proc3 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 proc4 2 4 854 proc4ops 59 0 0 0 857 149 0 1 0 0 38 68 0 29 0 86 38 0 0 30 0 2 0 68 0 4 13 28 0 6 25 2 0 15 0 66 3 3 0 18 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #
それぞれの値の見方は下記記事が参考になります。
まとめ
ブログを継続させるのって、難しい!