是什么导致重复的linux NFS客户端RPC凭据刷新?

前端之家收集整理的这篇文章主要介绍了是什么导致重复的linux NFS客户端RPC凭据刷新?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用nfsstat -c,我看到一个高“authrefrsh”(在某些系统上称为“newcred”)依赖于我的NFS客户端pc上的ls等操作,并查找包含~1000个文件的目录.这与性能非常差(20分钟目录列表)相关.缓存的NFS操作不会出现此行为(authrefrsh或减速).

每次检查nfsstat时,authrefrsh =调用

$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,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)

解决方法

我在NFS中遇到了这个问题.在我的情况下问题是由于actimeo设置得太低.虽然您可能没有使用这个确切的设置,但有一整套设置可能会造成严重破坏:acregmin,acregmax,acdirmin和acdirmax.基本上发生的是系统从NFS缓存文件属性.这些设置会影响从NFS刷新之前保留文件属性的时间.在使用频繁的系统上,这些刷新变得非常明显.

另一个有问题的设置是noac.如果您使用此功能,则可以保证所有其他客户端都可以立即使用任何写入操作.但是,写入将等到完成写入远程而不是使用后写.如果频繁写入NFS,这可能会使系统陷入困境.

This是一篇有趣的博客文章,他们讨论了不同的选项及其对NFS性能的影响.您还可以查看NFS的man页面获取更多指导.不幸的是,authrefrsh可能有点像红鲱鱼,我的问题可能完全无关,尽管有类似的症状.

猜你在找的Linux相关文章