Les statistiques du serveur NFS sont accessibles dans le fichier /proc/net/rpc/nfsd ; c’est ce fichier qu’il faut lire si vous avez votre propre programme de monitoring et qu’il vous faut les valeurs « brutes ». Si c’est pour une lecture par un humain, l’utilitaire nfsstat est là pour ça. Petit tour d’aperçu des deux outils
Commençons par le fichier source des statistiques (en effet, nfsstat se contente de lire ce fichier).
Informations dans /proc/net/rpc/nfsd
Exemple :
rc 52603 2106994613 989994491 fh 4 0 0 0 0 io 390118560 2479849292 th 512 549429 97890.216 29560.756 6016.820 1743.004 851.868 419.216 239.144 173.020 131.476 355.180 ra 1024 1554405721 0 0 0 0 0 0 0 0 0 923683645 net 3158986943 0 3158896106 4484 rpc 3149953922 2 2 0 0 proc3 22 1746 1055191401 195469818 34714069 722236051 618167 2478122396 1681654973 90492213 2315234 377 1 82213841 1538965 53357411 127 37630038 229128479 197374 2592 0 773272877 proc4 2 0 0 proc4ops 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
chaque ligne correspond à des informations différentes :
- rc : reply cache stats
- fh : file handle cache : gestion du cache des descripteurs de fichiers
- io : I/O effectuées (lectures / écritures)
- th : threads NFS
- ra : read ahead cache
- net : statistiques réseau
- rpc : Informations RPC
- proc3 : appels NFS dans le protocole 3
- proc4 : statistiques générales NFS v4
- proc4ops : appels NFS dans le protocole 4 (équivalent de la ligne proc3 mais en nfsv4)
Décrivons ensuite chaque champ de chaque ligne :
rc – read ahead cache
- hits : signifie qu’une retransmission a eu lieu (mauvais signe)
- Misses : une opération requiert du cache
- Nocache : une opération ne requiert pas de cache
fh – file handle cache
- stale : supposé être le nombre d’erreur de file handle (pas bon signe)
- total lookup
- anon lookup
- dir not in cache
- nodir not in cache
io – I/O effectuées
- lectures (en octets) sur disque
- écritures (en octets) sur disque
th – threads NFS
nombre de threads NFS ; Puis histogramme de l’utilisation des threads.
Le serveur NFS lance X threads au démarrage (X == premier argument de cette ligne, réglable dans votre config NFSD). Pour assigner les tâches, il fait ça de manière simple : il essaie d’assigner au 1er thread. Si celui-ci est occupé, il essaie d’assigner au 2e, et ainsi de suite jusqu’au dernier.
Le 2e paramètre de cette ligne correspond au nombre de fois où tous les threads ont été occupés. C’est très mauvais si cette valeur est supérieure à 0, cela veut dire que le serveur NFS n’a pas pu répondre au client car il était surchargé par les autres demandes en cours.
Suit alors 10 valeurs correspondant aux tranches d’utilisation : 0-10% ; 10-20%, etc.
Pour en déduire si vous avez ajusté correctement le nombre de threads NFS, regarder dans quelle tranche se situe le premier 0 (ce qui correspond donc au pourcentage jamais atteint).
ra – read ahead cache
- taille du cache en Kilo-octets
- histogramme d’utilisation, comme pour ‘th’, mais cette fois avec les valeurs dans cet ordre : <0-10%> <10-20%> … <100%>
- dernier chiffre : not-found ; requêtes non trouvées dans le cache
net : statistiques réseau
- ‘netcnt’ : compte chaque lecture
- nombre de paquets UDP reçu
- nombre de fois où le serveur a reçu des données d’une connexion TCP
- Nombre de connexions TCP établies
rpc – Informations RPC
- Nombre d’appels RPC ;
- mauvais appels ; mauvaise authentification ; mauvais client ; appels XDR(External Data Representation)
proc3 : appels NFS dans le protocole 3
- NULL – Do nothing
- GETATTR – Get file attributes
- SETATTR – Set file attributes
- LOOKUP – Lookup filename
- ACCESS – Check Access Permission
- READLINK – Read from symbolic link
- READ – Read From file
- WRITE – Write to file
- CREATE – Create a file
- MKDIR – Create a directory
- SYMLINK – Create a symbolic link
- MKNOD – Create a special device
- REMOVE – Remove a File
- RMDIR – Remove a Directory
- RENAME – Rename a File or Directory
- LINK – Create Link to an object
- READDIR – Read From Directory
- READDIRPLUS – Extended read from directory
- FSSTAT – Get dynamic file system information
- FSINFO – Get static file system Information
- PATHCONF – Retrieve POSIX information
- COMMIT – Commit cached data on a server to stable storage
proc4 : statistiques générales NFS v4
proc4ops : appels NFS dans le protocole 4
- null
- read
- write
- commit
- open
- open_conf
- open_noat
- open_dgrd
- close
- setattr
- fsinfo
- renew
- setclntid
- confirm
- lock
- lockt
- locku
- access
- getattr
- lookup
- lookup_root
- remove
- rename
- link
- symlink
- create
- pathconf
- statfs
- readlink
- readdir
- server_caps
- delegreturn
- setacl
- fs_locations.