Étienne Mollier a écrit : > Joël Bertrand, le mardi 17 avril 2018 : >> Étienne Mollier a écrit : >>> Si le problème se déclenche au lancement d'applications du >>> type à manipuler du cache pour des raisons de performances >>> (navigateurs web, java, etc), est-ce que diminuer, rediriger >>> en local, ou supprimer ledit cache permettrait de diminuer >>> l'ampleur des sautes d'humeur du poste de CAO ? >> >> Les programmes incriminés sont principalement les >> navigateurs web (seamonkey, firefox, chromium). Pas d'autre >> activité suspecte lorsque le problème survient. J'ai forcé le >> cache de seamonkey à 0. Je ne suis pas sûr que cela arrange la >> chose puisque durant les périodes fautives, il n'y a pas >> d'activité nfs. Comme si Linux attendait quelque chose. J'ai >> aussi l'impression que le problème est survenu avec le noyau >> 4.15 (je n'ai pas noté ce genre de problème auparavant sauf >> lorsque la machine se mettait à swapper, mais tous les >> programmes étaient impactés). > >> Un petit retour. J'ai désactivé le cache, ça améliore un >> tout petit peu les choses. J'ai noté avec un tcpdump que des >> requêtes NFS passaient lors des périodes où les applications >> bloquaient, requêtes ayant des réponses normales (et à un débit >> ridicule, quelques dizaines de kbps sur une réseau loin d'être >> engorgé et avec un serveur qui fait les pieds au mur en même >> temps). Lors de ces problèmes, aucun souci de résolution de nom >> ou autre chose. Pas de problème de réseau non plus (j'ai un >> vncviewer ouvert sur une machine distante qui continue à >> fonctionner parfaitement). C'est un peu comme si le client NFS >> mettait en cache des requêtes et oubliait de les envoyer... > > Bonsoir, > > C'est toujours ça de pris. Avec un peu de chance, désactiver une > tâche de fond du type à mettre à jour des caches pourrait aider, > typiquement mlocate/updatedb (m'enfin celui-ci n'est censé ne > tourner que quotidiennement par défaut, et n'était probablement > pas en train de tourner lors de vos essais).
C'est le premier truc que je désactive. > Du côté « correction du mal à la racine », le noyau 4.15 a > effectivement vu des modifications de son client NFS, versions 3 > et 4, entre autres dans sa gestion des caches, depuis le noyau > 4.14 : > > > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/diff/fs/nfs/?id=v4.14&id2=v4.15.16&dt=2 > > À part dans nfs4proc.c, les changements ne donnent pas > l'impression d'avoir été francs non plus. La migration depuis > refcount vers atomic est éventuellement suspecte. Avez-vous la > possibilité de tester les diverses versions de NFS pour voir si > le problème se maintient d'une version à l'autre, ou bien c'est > délicat ? C'est un peu délicat. De toute façon, je n'ai que NFSv2 et v3 côté NetBSD. Il y a bien le code NEW_NFS qui est le NFS de FreeBSD dans le noyau, mais il n'est pas aisément compilable et dans un état incertain. J'ai essayé de le compiler sans succès cet après-midi. Quoi qu'il en soit, je pourrais forcer un NFSv2, mais je ne suis pas sûr que ça améliorera les choses... Pour avoir continué mes essais, j'ai l'impression que le problème tourne autour de lockd. C'est lui qui semble partir en timeout. Côté serveur, j'ai un tas de : Apr 17 12:28:01 legendre rpc.lockd: no matching entry for hilbert Apr 17 12:28:01 legendre rpc.lockd: duplicate lock from hilbert.2 Apr 17 12:28:01 legendre rpc.lockd: no matching entry for hilbert Apr 17 12:28:02 legendre rpc.lockd: duplicate lock from hilbert.2 Apr 17 12:28:02 legendre rpc.lockd: no matching entry for hilbert Apr 17 12:28:04 legendre rpc.lockd: duplicate lock from hilbert.2 Apr 17 12:28:04 legendre rpc.lockd: no matching entry for hilbert Apr 17 12:28:05 legendre rpc.lockd: duplicate lock from hilbert.2 Apr 17 12:28:05 legendre rpc.lockd: no matching entry for hilbert Apr 17 12:28:05 legendre rpc.lockd: duplicate lock from hilbert.2 Apr 17 12:28:05 legendre rpc.lockd: no matching entry for hilbert que je n'avais pas avant. J'ai essayé de remonter la partition /home (puisque c'est celle qui semble poser problème) avec l'option nolock et je n'obtiens qu'un : root@hilbert:~# mount -o remount,rw,nolock /home mount.nfs: an incorrect mount option was specified ceci expliquant sans doute cela. Autre chose qui semble avoir changé. Mon fstab contient : 192.168.10.128:/srv/hilbert / nfs intr,tcp,nfsvers=3,async 0 0 192.168.10.128:/home /home nfs intr,tcp,nfsvers=3,async 0 0 /swapfile.0 none swap sw 0 0 Pourtant, les montages sont reconnus par le système comme : root@hilbert:~# nfsstat -m / from 192.168.10.128:/srv/hilbert Flags: rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,nolock,proto=tcp,port=2049,timeo=7,retrans=10,sec=sys,local_lock=all,addr=192.168.10.128 /home from 192.168.10.128:/home Flags: rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.10.128,mountvers=3,mountport=1020,mountproto=tcp,local_lock=none,addr=192.168.10.128 Je suppose que c'est encore un coup de la bouse systemd qui modifie les options puisque / est monté avec un nolock et /home avec un lock. Je précise que le fstab n'a pas changé depuis le 8 janvier 2017 et que tout fonctionnait correctement. Bien cordialement, JKB