Linux NFSクライアント側のRPC資格情報が繰り返し更新される原因は何ですか?


10

使用してnfsstat -c、私は(いくつかのシステムでは、「newcred」として知られている)高い「authrefrshは」のような操作のための私のNFSクライアントPCを頼りに見ているlsfind〜1000個のファイルを含むディレクトリに。これは、非常に低いパフォーマンス(20分以上のディレクトリ一覧)と相関関係があります。キャッシュされたNFS操作は、この動作(authrefrshまたはスローダウン)を示しません。

authrefrsh = nfsstatをチェックするたびに呼び出す:

$ nfsstat -c

Client rpc stats:
calls      retrans    authrefrsh
280462     0          280462

Client nfs v3:
null         getattr      setattr      lookup       access       readlink
0         0% 126990   45% 0         0% 10062     3% 58592    20% 0         0%
read         write        create       mkdir        symlink      mknod
25030     8% 0         0% 65        0% 0         0% 2         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
0         0% 0         0% 0         0% 0         0% 0         0% 59654    21%
fsstat       fsinfo       pathconf     commit
0         0% 20        0% 10        0% 0         0%

接続の詳細:

$ mount.nfs -v nfshost:/share/dir /somedir
mount.nfs: timeout set for Tue Feb 21 18:12:18 2012
mount.nfs: trying text-based options 'vers=4,addr=192.168.xx.xx,clientaddr=192.168.xx.xx'
mount.nfs: mount(2): Operation not permitted
mount.nfs: trying text-based options 'addr=192.168.xx.xx'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.xx.xx prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.xx.xx prog 100005 vers 3 prot UDP port 1011
nfshost:/share/dir on /somedir type nfs

nfshost RPC環境:

$ rpcinfo -T udp nfshost nfs
program 100003 version 2 ready and waiting
program 100003 version 3 ready and waiting
program 100003 version 4 ready and waiting

$ rpcinfo -T udp nfshost mountd
program 100005 version 1 ready and waiting
program 100005 version 2 ready and waiting
program 100005 version 3 ready and waiting

$ rpcinfo -T udp nfshost nlockmgr
program 100021 version 1 ready and waiting
rpcinfo: RPC: Program/version mismatch; low version = 1, high version = 4
program 100021 version 2 is not available
program 100021 version 3 ready and waiting
program 100021 version 4 ready and waiting

$ rpcinfo -T udp nfshost llockmgr
rpcinfo: RPC: Program not registered

$ rpcinfo nfshost
program version netid     address                service    owner
100000    2    tcp       0.0.0.0.0.111          portmapper unknown
100000    2    udp       0.0.0.0.0.111          portmapper unknown
100024    1    udp       0.0.0.0.2.212          status     unknown
100024    1    tcp       0.0.0.0.2.215          status     unknown
100021    1    udp       0.0.0.0.226.67         nlockmgr   unknown
100021    3    udp       0.0.0.0.226.67         nlockmgr   unknown
100021    4    udp       0.0.0.0.226.67         nlockmgr   unknown
100021    1    tcp       0.0.0.0.134.55         nlockmgr   unknown
100021    3    tcp       0.0.0.0.134.55         nlockmgr   unknown
100021    4    tcp       0.0.0.0.134.55         nlockmgr   unknown
100011    1    udp       0.0.0.0.3.230          rquotad    unknown
100011    2    udp       0.0.0.0.3.230          rquotad    unknown
100011    1    tcp       0.0.0.0.3.233          rquotad    unknown
100011    2    tcp       0.0.0.0.3.233          rquotad    unknown
100003    2    udp       0.0.0.0.8.1            nfs        unknown
100003    3    udp       0.0.0.0.8.1            nfs        unknown
100003    4    udp       0.0.0.0.8.1            nfs        unknown
100003    2    tcp       0.0.0.0.8.1            nfs        unknown
100003    3    tcp       0.0.0.0.8.1            nfs        unknown
100003    4    tcp       0.0.0.0.8.1            nfs        unknown
100005    1    udp       0.0.0.0.3.243          mountd     unknown
100005    1    tcp       0.0.0.0.3.246          mountd     unknown
100005    2    udp       0.0.0.0.3.243          mountd     unknown
100005    2    tcp       0.0.0.0.3.246          mountd     unknown
100005    3    udp       0.0.0.0.3.243          mountd     unknown
100005    3    tcp       0.0.0.0.3.246          mountd     unknown

環境:

$ uname -a
Linux whiteheat 3.0.0-15-generic #26-Ubuntu SMP Fri Jan 20 17:23:00 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

$ mount.nfs a b -V
mount.nfs: (linux nfs-utils 1.2.4)

更新はありますか?SLES 11 SP2とCentOS 6.4とSLES 9 SP4のように、新しいカーネルを使用するnfsクライアントのパフォーマンスが低いことに気付きました。統計で見られる唯一の違いは、authrefrshが非常に高いことです。これは、パフォーマンスの低下を引き起こす追加のオーバーヘッドであると想定しています。
Banjer 2013年

更新はありません。申し訳ありません。SSH + SCPがオプションであったため、私は自分のアプリケーションのNFSから離れました。問題は壊滅的だった:)
Chris Betti 2013年

nfs v3対v4の問題ではないのですか?
kofemann 2013年

:FYIこのUnixのSEの質問は、この問題に関するより多くのリードがある unix.stackexchange.com/questions/13557/...
Banjer

1
バグの履歴の詳細:bugzilla.redhat.com/show_bug.cgi
Deer Hunter

回答:


1

NFSでこの問題が発生しました。私の場合の問題は、actimeoの設定が低すぎることが原因でした。この正確な設定を使用していない可能性がありますが、破壊を引き起こす可能性のある設定のファミリー全体があります:acregmin、acregmax、acdirmin、およびacdirmax。基本的には、システムがNFSからのファイル属性をキャッシュしていることが起こります。これらの設定は、NFSから更新する前にファイル属性が保持される期間に影響します。使用率の高いシステムでは、これらの更新が非常に明白になります。

別の問題のある設定はnoacです。これを使用すると、他のすべてのクライアントがすべての書き込みをすぐに利用できることが保証されます。ただし、書き込みは、後書きを使用するのではなく、リモートへの書き込みが完了するまで待機します。これにより、NFSに頻繁に書き込みを行うと、システムが危険にさらされる可能性があります。

これは興味深いブログ記事であり、NFSパフォーマンスに対するさまざまなオプションとその影響について話しています。詳細については、NFS のマニュアルページを参照することもできます。残念ながら、authrefrshは少しニシンのようなものになる可能性があり、私の問題は、同様の症状ではありますが、まったく無関係である可能性があります。


iirc noacも資格情報のキャッシュに関係するだけなので、権限メタデータへの書き込みは即時に行われ、「書き込み」は行われません。今はよくわからないので編集しませんでした。
Florian Heigl

noacに関連するパフォーマンスの問題が発生しているだけなので、企業以外のNFSサーバーを使用している場合、これは実際に問題になります。
Florian Heigl 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.