(net-fs/nfs-utils-1.2.3-r1、2.6.38.5-zen+ Gentoo)
グーグルをやってみると完全に行き届いた路地のようです。mennfsstatそのテーマについては何も言いません。私が得ることができる最も近い方法は、以前に何が起こったのかを調べることです。新しいクレジット」。
newcreds認証情報を更新する必要がある回数。
私の問題は私です考えるOpenVPNで低レベルのNFSパフォーマンスを見ていますが、すべてのnfsstat Googleの結果と大きく異なる点をすぐに確認できる唯一のことは、私の「呼び出し」フィールドが「authrefrsh」とまったく同じであるため、非常に高いことです。すべての検索結果の authrefrsh 出力は、常にゼロまたは非常に低い数値です。他の側面をデバッグする前に、これが何を意味するのかを理解できます。
モニタリングタスクは、NFS共有ポーテージに基づいてパッケージをレンダリングします。新興は実行中に大きな木を横切っていますが、以前の経験によると、私が見ていたパフォーマンスは異常です。
$ watch -n 1 nfsstat -c
Every 1,0s: nfsstat -c Sat May 21 23:04:55 2011
Client rpc stats:
calls retrans authrefrsh
308565 2211 308565
Client nfs v3:
null getattr setattr lookup access readlink
0 0% 172372 55% 17 0% 30485 9% 36057 11% 26831 8%
read write create mkdir symlink mknod
25879 8% 107 0% 21 0% 0 0% 0 0% 0 0%
remove rmdir rename link readdir readdirplus
16 0% 0 0% 11 0% 0 0% 0 0% 16668 5%
fsstat fsinfo pathconf commit
3 0% 50 0% 25 0% 2 0%
authrefrshが何であるか正確にはわかりません(しかし、このスペルは意図的なものですか?)。私の場合、なぜこのように増加するのですか?
答え1
~からRed Hat 記事コメントでは、ソリューションは次のように言います。
これは予想される動作です。
あまり役に立ちませんが、それが起こった理由も指摘します。
これは、nfs認証が発生する場所に移動されたsunrpcパッケージのコミットa17c2153d2e271b0cbacae9bed83b0eaa41db7e1を参照します。コミット全体をコピー/貼り付けるのではなく、主にこの行を変更します。
-struct rpc_cred *cred = task->tk_msg.rpc_cred;
+struct rpc_cred *cred = task->tk_rqstp->rq_cred;
私の制限的な理解は、この行がcall_refresh()が発生する場所に(後ではなく近いうちに)移動されることです。これは、最終的に認証が常に使用されるため、ほとんどのnfsリクエストがauthrefrshを増やすことを意味します。
答え2
私は同じものを見ます(VPNを使用しません) - authrefrsh ==クライアント側で呼び出されました。呼び出しの数が増えて速度が遅くなり、authrefrshの数が追いついているようです。
クライアントrpc統計:
calls retrans authrefrsh
261697 0 261697
私も非常に高いiowaitを見ています。
dd if=/dev/zero of=/mnt/omoikane/testfile bs=16k count=2048
(iostatから:)
avg-cpu: %user %nice %system %iowait %steal %idle
4.04 0.00 4.04 91.92 0.00 0.00
Wiresharkで珍しいことは見えません。私はnfs3とtcpを使用しています。
答え3
このリンクで私が理解している限り、authrefresh = Callsは問題を示していません。