Le système de fichiers réseau (NFS) permet aux machines de monter une partition de disque sur une machine distante comme s'il s'agissait d'un disque local. Il permet un partage rapide et transparent des fichiers sur un réseau. Cependant, étant donné que NFS s'appuie sur l'infrastructure réseau existante, tout problème sur le réseau peut affecter les performances de la connexion. Les deux outils les plus importants que j'ai utilisés au fil des ans pour analyser les performances de NFS du point de vue du serveur et du client sont nfsstat
et nsfiostat
. Les deux outils font partie du package nfs-utils et doivent être installés en tant que tels :
yum install -y nfs-utils
Comprendre la sortie des outils peut aider à optimiser les performances NFS.
La commande nfsstat
Le nfsstat
La commande affiche des informations statistiques sur les interfaces NFS et Remote Procedure Call (RPC) avec le noyau.
Sur le serveur NFS, exécutez la commande suivante :
nfsstat -s
Le résultat devrait ressembler à ce qui suit :
Server rpc stats:
calls badcalls badclnt badauth xdrcall
107310012 0 0 0 0
Server nfs v4:
null compound
21 0% 107310004 99%
Server nfs v4 operations:
op0-unused op1-unused op2-future access close commit
0 0% 0 0% 0 0% 910848 0% 5671218 2% 153218 0%
create delegpurge delegreturn getattr getfh link
4104 0% 0 0% 517 0% 58659066 22% 8700995 3% 0 0%
Le champ le plus important à vérifier est le badcalls
, qui représente le nombre total d'appels rejetés par la couche RPC. Lorsque les badcalls
est supérieur à 0, que le réseau sous-jacent doit être vérifié, car il peut y avoir une latence. De plus, il est très important de placer le serveur NFS dans le même sous-réseau que le client NFS lors de la conception du réseau.
Sur le client NFS, vous exécutez ce qui suit :
nfsstat -c
La sortie devrait ressembler à celle ci-dessous :
Client rpc stats:
calls retrans authrefrsh
30557550 27686 11075
Client nfs v4:
null read write commit open open_conf
0 0% 1601136 5% 568239 1% 23683 0% 1652804 5% 1466260 4%
open_noat open_dgrd close setattr fsinfo renew
0 0% 0 0% 1648000 5% 27154 0% 8 0% 28320 0%
D'après ce qui précède, le client se porte bien car il a relativement peu de demandes de retransmission. Si vous rencontrez des retransmissions excessives, vous pouvez ajuster les tailles de tampon de transfert de données, qui sont spécifiées par le mount
options de commande rsize
et wsize
.
Vous pouvez également vérifier les paquets abandonnés en exécutant la commande suivante sur le serveur et le client :
nfsstat -o net
La commande nfsiostat
Le nfsiostat
La commande fonctionne de la même manière que iostat
commande, mais est utilisé pour les points de montage NFS sur le serveur. Il utilise le fichier /proc/self/mountstats
en entrée et fournit des informations sur les performances d'entrée/sortie des partages NFS montés sur le système.
Le nfsiostat
La commande est utilisée sur le client NFS pour vérifier ses performances lors de la communication avec le serveur NFS.
Exécution de nfsiostat
sans aucun argument devrait avoir une sortie semblable à la suivante :
10.10.1.10:/data/share mounted on /samba/students:
op/s rpc bklog
16.96 0.00
read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.900 5.392 5.990 0 (0.0%) 0.550 0.660
write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.031 21.818 708.149 0 (0.0%) 122.745 35874.872
Les statistiques les plus importantes à surveiller sont :
retrans
- C'est le nombre de retransmissions.avg RTT (ms)
- Il s'agit de la durée entre le moment où le noyau du client envoie la requête RPC et le moment où il reçoit la réponse.avg exe (ms)
- Il s'agit de la durée entre le moment où le client NFS envoie la demande RPC à son noyau et celui où la demande RPC est terminée. Cela inclut le RTT.
Un avg RTT(ms)
très élevé et retrans
indique qu'il y a une latence élevée sur le réseau. Une latence élevée affecte également les performances d'E/S, car il y aura de nombreux délais d'attente. Le client deviendra lent et difficile à travailler.
Il est également très important de toujours disposer d'un réseau dédié entre le serveur NFS et le client NFS pour garantir un débit élevé.
Conclusion
L'utilisation de nfsstat
et nfsiostat
pour résoudre les problèmes de performances NFS peut faire de vous un administrateur système beaucoup plus efficace. Prenez le temps d'apprendre et d'utiliser ces excellents outils NFS.
[ Vous en voulez plus pour votre réseau ? Téléchargez un ebook gratuit sur l'automatisation du réseau avec Ansible. ]