Slow NFS, nfsstat -c: de quoi parle le champ authrefrsh (aka newcreds?) En détail?

10

(net-fs / nfs-utils-1.2.3-r1, 2.6.38.5-zen + Gentoo)

Googler cela semble être une impasse complète. man nfsstat ne dit pas grand-chose sur le sujet. Le plus proche que j'ai pu obtenir était de découvrir ce qui était probablement auparavant des « nouveaux crédits ».

newcreds Nombre de fois où les informations d'authentification ont dû être actualisées.

Mon problème est que je pense que je vois des performances NFS inférieures à OpenVPN et la seule chose que je peux voir immédiatement qui est significativement différente de tous les résultats nfsstat de Google, c'est que mon champ "appels" est exactement "authrefrsh" et est donc très élevé . Toutes les sorties de résultats de recherche avaient toujours une valeur d'authrefrsh égale à 0 ou un nombre très faible. Avant de pouvoir passer au débogage de certains autres aspects, je pourrais découvrir ce que cela signifie.

L'opération surveillée fait émerger un package sur le portage partagé NFS. emerge traverse un grand arbre pendant son fonctionnement, mais l'expérience précédente indique que les performances que je vois sont anormales.

$ watch -n 1 nfsstat -c

Every 1,0s: nfsstat -c                                Sat May 21 23:04:55 2011

Client rpc stats:
calls      retrans    authrefrsh
308565     2211       308565

Client nfs v3:
null         getattr      setattr      lookup       access       readlink
0         0% 172372   55% 17        0% 30485     9% 36057    11% 26831     8%
read         write        create       mkdir        symlink      mknod
25879     8% 107       0% 21        0% 0         0% 0         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
16        0% 0         0% 11        0% 0         0% 0         0% 16668     5%
fsstat       fsinfo       pathconf     commit
3         0% 50        0% 25        0% 2         0%

Je ne peux pas comprendre exactement ce qu'est authrefrsh (et cette orthographe, est-ce intentionnel?) Et pourquoi augmente-t-il comme ça dans mon cas?

lkraav
la source
Lorsque vous dites NFS lent, qu'est-ce qui vous fait croire que les performances NFS devraient être plus rapides? Pouvez-vous quantifier lentement? L'heure du jour est-elle importante pour les performances WRT?
Mike Pennington
«NFS lent» signifie que le trafic NFS ne devrait avoir aucun problème à utiliser toute la bande passante disponible, ce qui sur VPN n'était pas beaucoup (100 ko / s). Au lieu de cela, iftop me montrait un trafic à un seul chiffre kB / sec sur tun0. Je pense avoir réduit le problème à Portage statuant quelques milliers de paquets dans mon PKGDIR pendant les cycles d'émergence liés à binpkg, ce qui semble être un fonctionnement extrêmement lent. D'après ce que je peux dire jusqu'à présent, la meilleure solution pourrait être d'avoir régulièrement mis à jour le portage squashfs sur les postes de travail distants et d'obtenir des binpkgs sur HTTP binhost, au lieu de PKGDIR monté sur NFS.
lkraav
Des mises à jour à ce sujet? J'ai remarqué de moins bonnes performances du client NFS avec les nouveaux serveurs SLES 11 et CentOS 6 par rapport à nos anciens serveurs SLES 9. Les clients SLES 9 sont plus rapides et s'affichent également authrefrsh=0, tandis que les nouveaux OS affichent une tonne de authrefrsh. Je pense qu'il y a une corrélation ici, mais je ne sais pas trop ce que tout cela signifie.
Banjer
Quel type d'authentification NFS faites-vous? AUTH_SYS?
Bratchley
Pour répondre à une partie de votre question, authrefrsh est le nombre de fois que le client NFS a appelé, call_refresh()qui va essentiellement vers le serveur RPC (portmap, rpcbind, etc.) et valide ses informations d'identification avec le serveur. Nous devons déterminer si c'est réellement la cause de la latence. Si vous le faites, AUTH_SYSles frais généraux sont faibles et ne seraient pas la cause.
Bratchley

Réponses:

5

D'après l' article de Red Hat dans les commentaires, la solution dit

Il s'agit d'un comportement attendu.

Pas très utile, mais cela indique également la raison pour laquelle cela se produit.

Il fait référence à la validation a17c2153d2e271b0cbacae9bed83b0eaa41db7e1 dans le package sunrpc qui se déplace là où l'authentification nfs a lieu. Je ne vais pas copier / coller l'intégralité du commit mais cela change surtout ces lignes.

-struct rpc_cred *cred = task->tk_msg.rpc_cred;
+struct rpc_cred *cred = task->tk_rqstp->rq_cred;

Ma compréhension limitée est que cette ligne se déplace là où le call_refresh () se produit (le plus tôt possible). Cela signifie à son tour que la plupart des requêtes nfs entraîneront une incrémentation de l'authrefrsh car l'authentification est toujours utilisée.

Rothgar
la source
1

Je vois la même chose (n'utilisant pas vpn) - authrefrsh == appelle du côté client. Il me semble que le nombre d'appels augmente, puis ralentit, et que le nombre d'authentification se rattrape.

Statistiques RPC client:

calls      retrans    authrefrsh
261697     0          261697

Je vois aussi très haut:

dd if=/dev/zero of=/mnt/omoikane/testfile bs=16k count=2048

(de iostat :)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          4.04    0.00    4.04   91.92    0.00    0.00

Je ne vois rien d'inhabituel dans Wireshark - j'utilise nfs3 et tcp.

Andy
la source
1

D'après ce que je comprends de ce lien, authrefresh = calls n'indique pas un problème.

https://bugzilla.redhat.com/show_bug.cgi?id=785931

Gene O
la source
Bienvenue sur Unix et Linux! Généralement, nous aimons les réponses sur le site pour pouvoir se débrouiller seules - Les liens sont excellents, mais si ce lien se casse, la réponse devrait avoir suffisamment d'informations pour être utile. Veuillez envisager de modifier votre réponse pour inclure plus de détails. Voir la FAQ pour plus d'informations.
slm
ce qu'ils veulent dire, c'est qu'ils ne sont pas sûrs que ce soit la cause du problème ou qu'ils augmentent simplement à cause de cela. "monter en flèche" indique définitivement que les choses ne vont pas bien. de même, cela est principalement vu en parallèle avec des problèmes de perf laid.
Florian Heigl