Используя nfsstat -c
, я вижу высокий счет «authrefrsh» (известный как «newcred» в некоторых системах) на моем клиентском ПК NFS для таких операций, как ls
и find
для каталогов, содержащих ~ 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)
Ответы:
Я столкнулся с этой проблемой с NFS. Проблема в моем случае была вызвана слишком низким значением actimeo . Хотя вы можете не использовать этот точный параметр, существует целый ряд параметров, которые могут вызвать хаос: acregmin, acregmax, acdirmin и acdirmax. По сути, происходит то, что система кэширует атрибуты файлов из NFS. Эти параметры влияют на то, как долго сохраняются атрибуты файла до обновления из NFS. В системах с интенсивным использованием эти обновления становятся до боли очевидными.
Другой проблемный параметр - noac . Если вы используете это, вы гарантируете, что любые записи будут немедленно доступны всем другим клиентам. Тем не менее, запись будет ждать до завершения записи на удаленный, а не использовать обратную запись. Это может поставить систему на колени, если она часто пишет в NFS.
Это интересная статья в блоге, где они рассказывают о различных параметрах и их влиянии на производительность NFS. Вы также можете посмотреть на человека странице для NFS для получения дополнительных указаний. К сожалению, authrefrsh может быть чем-то вроде красной сельди, и моя проблема может быть совершенно не связана, хотя и с похожими симптомами.
источник