Problèmes de lenteur avec les montages NFS
Voici un billet qui pourra en intéresser plus d'un, notamment, ceux qui utilise NFS et qui se plaigne de lenteur à l'établissement du montage.
Ci dessous, un copier / coller du message que j'ai reçu de la part d'un ami qui se plaignait de lenteur NFS depuis pas mal de temps...
[...]
j'ai trouvé la solution pour ma salo$%&# de lenteur de connexion à mon partage nfs.
si tu peux mettre ça sur ton blog pour en faire profiter des ubuntutiens.
Sur ma machine depuis un certain temps, disons depuis que je suis passer de kubuntu à ubuntu il y a environ 6 mois, j'ai quelques problèmes pour me connecter au serveur NFS de ma passerelle, en effet, le montage d'un partage NFS prend une bonne minute.
Sur mon client avec la commande censée monter le partage NFS :
$ sudo mount -t nfs server:/mnt/nfs/ /mnt/nfs
Au moment ou j'exécute la commande de montage, j'ai une demande dans /var/log/syslog du serveur
May 27 22:30:32 server rpc.mountd: authenticated mount request from
192.168.100.10:656 for /mnt/nfs (/mnt/nfs)
Ensuite, sur mon client, j'attends une bonne minute, et enfin je peux accéder à mon partage, chouette !
Sur la machine cliente lors d'une tentative j'ai dans le syslog une série de ligne qui m'avais semblé n'avoir aucun rapport avec la choucroute. Voici un extrait de : /var/log/syslog
May 27 22:30:33 pepitux kernel: [4308766.066000] portmap: server localhost not responding, timed out
May 27 22:30:33 pepitux kernel: [4308766.066000] RPC: failed to contact portmap (errno -5).
May 27 22:31:08 pepitux kernel: [4308801.066000] portmap: server localhost not responding, timed out
May 27 22:31:08 pepitux kernel: [4308801.066000] RPC: failed to contact portmap (errno -5).
May 27 22:31:43 pepitux kernel: [4308836.067000] portmap: server localhost not responding, timed out
May 27 22:31:43 pepitux kernel: [4308836.067000] RPC: failed to contact portmap (errno -5).
Surpris de ce genre de ligne je me suis dis je vais redémarrer le service portmap sur mon client en espérant voir d'éventuelles erreurs.
Et là, à ma grande surprise, dans /etc/init.d pas de service portmap.
Après de multiple recherches sur mon ami google, portmap a un lien avec mon nfs (client), donc je regarde si il est installé :
$ dpkg -l portmap
No packages found matching portmap.
$
C'est bizarre quand même, essayer d'utiliser un service qui n'est pas installé.
Bref une petite ligne pour installer portmap :
$ sudo apt-get install portmap
L'installation s'est bien passée, je retest de me connecter à mon partage nfs :
$ sudo mount -t nfs server:/mnt/nfs/ /mnt/nfs
Et en une fraction de seconde ça me rends la main.
Donc la lenteur de connexion était causée par un paquet non installé, J'ai fait le test avec la dapper drake RC, il existe le même problème.
pepito
J'ai testé sur une de mes machines en compagnie de Pépito sur une Dapper fraichement installée et sa solution fonctionne parfaitement bien, on passe ainsi d'une à deux minutes d'attente à l'instantanéité totale !
Si quelqu'un dans l'assistance à une idée sur le pourquoi du comment, nous sommes preneur d'une explication !



Commentaires
Merci hugo d'avoir mit l'article en ligne, si ca peux aider, ca me fera mon premier pas dans ce grand univers :)
Bah, de rien !
J'espère que quelqu'un pourra nous donner une explication !
mouais .. ca a beaucoup plus sa place sur le forum que dans le planet qui est cense aider le commun des noobs ...
trougnouf:
* Je pense que ça peut réellement dépanner un utilisateur se posant des questions sur des temps de connexions beaucoup trop long
* J'ai déjà vu beaucoup plus complexe que ça sur le planet...
Effectivement ça m'a bien aidé :) Le pc de ma copine avait ce problème alors que le mien sous dapper aussi marchait au poil :| En fait c'était juste portmap qui manquait ^^ Pourtant je le croyais obligatoire pour les montages NFS ...
Je n'ai pas encore utilisé NFS mais j'ai vu son fonctionnement dans mon cours (qu'il faudrait que j'étudie d'ailleurs...). Son fonctionnement est basé sur RPC (comme on peut le voir ici) pour "Remote Procedure Call", c'est à dire "appel de procédure distante". Le principe est simple: c'est comme si on voulait appeler une fonction dans un programme, sauf que le code de la fonction est exécuté sur un serveur distant, qui renvoie le résultat (connexion, fichier etc.).
D'après la description du paquet portmap, c'est un paquet indispensable pour utiliser RPC ("It must be running in order to make RPC calls."), c'est même donc étrange que NFS parvienne à fonctionner sans... et même à être installé sans: sous Dapper le paquet nfs-common dépend de portmap...
okay desole ^.^ mais j'ai pas bien compris, ca arrive qu'apres une maj brezzytodapper ou sur une install fraiche aussi ?
trougnouf:
pas de problème :)
J'ai testé après une installation de Breezy et de Dapper : même résultat, pas de paquet portmap !
je crois que l'on peut se passer de portmap.
En fait portmap permet de définir dynamiquement un port pour la connection nfs, et donc si tu n'as pas portmap, au bout d'un timeout, il va prendre le port par defaut.
de mémoire il est possible de se passer de portmap et de ne pas avoir ce timeout avec l'option "-o nolock" lorsque tu fait ton mount.
A+
pas mal ! :-\
ralentissement par manque de paquet... lol :)
enfin merci pour la soluce parce que c'est bien un coup à se faire avoir ca !
"Voici un billet qui pourra en intéresser plus d'un"
Au moins un :] Merci :)
(crevard de portmap :)
Salut
Avec un sudo aptitude install nfs-kernel-server nfs-comon
j'ai bien l'install de portmap :
libeventl libnfsidmapl nfs-comon nfs-kernel-server portmap
Sans doute en passant via Synaptic et en spécifiant dans les Préférences de traiter les dépendances, le problème de portmap ne se serait pas posé ...
@++
Merci pour cette solution, le probleme me tapait sur les nerfs...
Banzaï !
Génial ! ça m'énervait dingue : je ne comprend pas pq cette astuce n'est pas indiquée clairement dans les docs. Merci