Les documents relatifs au fournisseur de DTrace NFS sont assez bien rédigés sur le site Web de la Commission européenne. Site web d'Oracle . Les scripts en particulier qui vous semblent utiles sont les suivants nfsv3fileio.d
ou (pour obtenir un lot plus de données que vous devrez peut-être post-traiter) nfsv3rwsnoop.d
.
En supposant que vous voulez dire "le plus utilisé" comme dans "le plus grand nombre de lectures / écritures", et que vous ne vous souciez pas de la proportion entre ceux-ci ou de qui les fait, un simple script pour imprimer les noms de fichiers et le nombre d'entrées-sorties à chacun d'eux est :
nfsv3:::op-read-start, nfsv3:::op-write-start {
@[args[1]->noi_curpath] = count();
}
tick-10sec {
printa(@);
trunc(@);
}
(Je ne l'ai pas exécuté car je n'ai pas de partages NFS configurés, mais je pense que cela fonctionnera). Pour résumer ce qu'il fait :
-
nfsv3:::op-{read|write}-start
sont les événements qui se déclenchent lorsqu'une lecture ou une écriture commence sur un partage NFSv3. Chaque fois que l'un de ces événements se produit, l'événement reçoit un argument args[1]
qui contient la variable noi_curpath
qui donne le chemin d'accès du fichier (s'il est disponible ; parfois, il n'est pas mis en cache et vous n'obtenez rien). Nous l'utilisons comme clé, et nous utilisons la fonction count()
de fois, cela se produit comme la valeur dans une carte nommée @
.
-
tick-10sec
est un événement qui se déclenche toutes les 10 secondes, en commençant 10 secondes après le début du script. Il imprime d'abord la carte avec printa()
et efface ensuite les valeurs qu'il contient avec la commande trunc()
pour qu'on ait des données fraîches pour la prochaine fenêtre de 10 secondes.