Was bewirkt eine wiederholte Aktualisierung der RPC-Anmeldeinformationen auf der Client-Seite von Linux NFS?

10

Bei Verwendung von nfsstat -cwird auf meinem NFS-Client-PC eine hohe Anzahl von "authrefrsh" (auf einigen Systemen als "newcred" bezeichnet) für Vorgänge wie lsund findfür Verzeichnisse mit ~ 1000 Dateien angezeigt . Dies korreliert mit einer sehr schlechten Leistung (Verzeichnislisten von mehr als 20 Minuten). Zwischengespeicherte NFS-Vorgänge weisen dieses Verhalten nicht auf (Authrefrsh oder Slowdown).

authrefrsh = ruft jedes Mal auf, wenn ich nfsstat überprüfe:

$ 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%

Verbindungsdetails:

$ 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-Umgebung:

$ 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

Umgebung:

$ 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)
Chris Betti
quelle
irgendwelche Updates? Ich habe eine schlechtere Leistung von NFS-Clients mit neueren Kerneln festgestellt, z. B. SLES 11 SP2 und CentOS 6.4 im Vergleich zu SLES 9 SP4. Der einzige Unterschied, den ich in den Statistiken sehe, ist, dass authrefrsh sehr hoch ist. Ich gehe davon aus, dass dies ein zusätzlicher Aufwand ist, der zu einer Verschlechterung der Leistung führt.
Banjer
Keine Updates, sorry. Ich bin für meine Anwendung von NFS weggezogen, weil SSH + SCP eine Option war. Das Problem war lähmend :)
Chris Betti
Sind Sie sicher, dass es sich nicht um ein Problem mit NFS V3 oder V4 handelt?
Kofemann
Zu Ihrer
Information,
1
Mehr zur Geschichte des Bugs: bugzilla.redhat.com/show_bug.cgi?id=785931
Deer Hunter

Antworten:

1

Ich habe genau dieses Problem mit NFS festgestellt. Das Problem in meinem Fall wurde dadurch verursacht, dass actimeo zu niedrig eingestellt war. Während Sie möglicherweise nicht genau diese Einstellung verwenden, gibt es eine ganze Familie von Einstellungen, die Chaos verursachen können: Acregmin, Acregmax, Acdirmin und Acdirmax. Im Wesentlichen werden die Dateiattribute vom NFS zwischengespeichert. Diese Einstellungen wirken sich darauf aus, wie lange die Dateiattribute vor dem Aktualisieren von NFS aufbewahrt werden. Auf einem System mit starker Beanspruchung werden diese Aktualisierungen schmerzhaft offensichtlich.

Eine andere problematische Einstellung ist noac . Wenn Sie dies verwenden, garantieren Sie, dass alle Schreibvorgänge sofort allen anderen Clients zur Verfügung stehen. Schreibvorgänge warten jedoch, bis das Schreiben auf die Fernbedienung abgeschlossen ist, anstatt Write-Behind zu verwenden. Dies kann ein System in die Knie zwingen, wenn es häufig in NFS schreibt.

Dies ist ein interessanter Blog-Artikel, in dem sie über die verschiedenen Optionen und ihre Auswirkungen auf die NFS-Leistung sprechen. Sie könnten auch am suchen Mann für mehr Orientierung Seite für NFS. Leider kann Authrefrsh ein bisschen wie ein roter Hering sein und mein Problem kann völlig unabhängig sein, wenn auch mit ähnlichen Symptomen.

Foosh
quelle
iirc noac betrifft auch nur das Zwischenspeichern von Anmeldeinformationen, sodass das Schreiben in Berechtigungsmetadaten sofort erfolgt und keine "Schreibvorgänge". Nicht bearbeitet, da ich mir jetzt nicht ganz sicher bin.
Florian Heigl
Ich sehe nur ein Noac-bezogenes Leistungsproblem, daher ist dies eine Sache, wenn ich mit NFS-Servern außerhalb des Unternehmens arbeite.
Florian Heigl