Що викликає повторне оновлення облікових записів RPC на стороні Linux NFS?


10

Використовуючи 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-клієнтів із новішими ядрами, наприклад, SLES 11 SP2 та CentOS 6.4 проти SLES 9 SP4. Єдина відмінність, яку я бачу в статистиці, полягає в тому, що authrefrsh дуже високий. Я припускаю, що це додаткові накладні витрати, які спричиняють погіршення продуктивності.
Банджер

Немає оновлень, вибачте. Я відійшов від NFS для своєї заявки, тому що SSH + SCP був варіантом. Випуск було калічним :)
Кріс Бетті

Ви впевнені, що це не проблема nfs v3 проти v4?
kofemann

fyi це питання Unix SE має більше запитів
Banjer

1
Більше про історію помилки: bugzilla.redhat.com/show_bug.cgi?id=785931
Мисливець на оленів

Відповіді:


1

З цією проблемою я стикався з NFS. Проблема в моєму випадку була викликана тим, що actimeo був встановлений занадто низько. Хоча ви, можливо, не використовуєте цей точний параметр, є ціле сімейство налаштувань, які можуть спричинити хаос: acregmin, acregmax, acdirmin та acdirmax. По суті, що трапляється, це те, що система кешує атрибути файлів з NFS. Ці параметри впливають на тривалість збереження атрибутів файлів до оновлення від NFS. У системі з великим використанням, ці оновлення стають болісно очевидними.

Ще одна проблемна установка - noac . Якщо ви користуєтесь цим, ви гарантуєте, що будь-які записи будуть негайно доступні для всіх інших клієнтів. Однак записи будуть чекати, поки закінчити писати на віддалений, а не використовувати записування. Це може підняти систему на коліна, якщо вона часто пише в NFS.

Це цікава стаття в блозі, де вони розповідають про різні варіанти та їх вплив на продуктивність NFS. Ви також можете подивитися на людину сторінці для NFS для отримання додаткових вказівок. На жаль, authrefrsh може бути трохи червоною оселедцем, і моє питання може бути абсолютно не пов'язаним, хоча і з подібними симптомами.


iirc noac також стосується кешування вхідних даних, тому записи метаданих у дозвіл є негайними, не "пише". Не редагував, оскільки я не все впевнений.
Флоріан Хейгл

Я просто бачу проблему продуктивності, пов’язану з noac, тому це фактично, якщо ви працюєте з непідприємницькими серверами NFS.
Флоріан Хейгл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.