Quali sono le cause dell'aggiornamento ripetuto delle credenziali RPC lato client Linux NFS?


10

Utilizzando nfsstat -c, sto vedendo un elevato "authrefrsh" (noto come "newcred" su alcuni sistemi) contare sul mio PC client NFS per operazioni come lse findsu directory contenenti ~ 1000 file. Ciò è correlato a prestazioni molto scarse (elenchi di directory di oltre 20 minuti). Le operazioni NFS memorizzate nella cache non presentano questo comportamento (authrefrsh o rallentamento).

authrefrsh = chiama ogni volta che controllo 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%

Dettagli di connessione:

$ 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

ambiente RPC nfshost:

$ 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

Ambiente:

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

nessun aggiornamento? Ho notato prestazioni peggiori dei client nfs con kernel più recenti, ad esempio SLES 11 SP2 e CentOS 6.4 vs SLES 9 SP4. L'unica differenza che vedo nelle statistiche è che authrefrsh è molto alto. Suppongo che questo sia un sovraccarico aggiuntivo che causa un peggioramento delle prestazioni.
Banjer,

Nessun aggiornamento, scusa. Mi sono allontanato da NFS per la mia applicazione, perché SSH + SCP era un'opzione. Il problema era paralizzante :)
Chris Betti,

sei sicuro che non sia un problema di nfs v3 vs. v4?
Kofemann,

grazie questa domanda Unix SE ha più contatti
Banjer,

1
Maggiori informazioni sulla storia del bug: bugzilla.redhat.com/show_bug.cgi?id=785931
Deer Hunter

Risposte:


1

Ho riscontrato questo esatto problema con NFS. Il problema nel mio caso è stato causato dall'attivazione troppo bassa di actimeo . Mentre potresti non utilizzare questa impostazione esatta, esiste un'intera famiglia di impostazioni che può causare il caos: acregmin, acregmax, acdirmin e acdirmax. In sostanza ciò che accade è che il sistema sta memorizzando nella cache gli attributi del file da NFS. Queste impostazioni influiscono sul tempo di conservazione degli attributi del file prima dell'aggiornamento da NFS. Su un sistema con un uso intenso, questi aggiornamenti diventano dolorosamente ovvi.

Un'altra impostazione problematica è noac . Se lo usi, garantisci che eventuali scritture saranno immediatamente disponibili per tutti gli altri clienti. Tuttavia, le scritture attenderanno fino al termine della scrittura sul telecomando anziché utilizzare il write-behind. Questo può mettere in ginocchio un sistema se scrive frequentemente su NFS.

Questo è un interessante articolo di blog in cui parlano delle diverse opzioni e del loro effetto sulle prestazioni di NFS. Puoi anche consultare la pagina man di NFS per maggiori informazioni. Sfortunatamente, authrefrsh può essere un po 'un'aringa rossa e il mio problema può essere totalmente indipendente, anche se con sintomi simili.


iirc noac riguarda anche solo la memorizzazione delle credenziali nella cache, quindi le scritture su autorizzazione sono immediate, senza "scritture". Non ho apportato modifiche poiché non ne sono più sicuro ora.
Florian Heigl,

sto vedendo un problema di prestazioni relativo a Noac, quindi questo è un dato di fatto, se si lavora con server NFS non aziendali.
Florian Heigl,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.