遅いNFS、nfsstat -c:authrefrsh(別名newcreds?)フィールドの詳細は何ですか?

遅いNFS、nfsstat -c:authrefrsh(別名newcreds?)フィールドの詳細は何ですか?

(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は問題を示していません。

https://bugzilla.redhat.com/show_bug.cgi?id=785931

関連情報