Je me demande comment je peux contrôler quel processus prend toute ma bande passante d'E/S. La seule commande que je connaisse est gstat
mais elle affiche des informations cumulatives. Existe-t-il des outils que je peux utiliser pour inspecter les processus en cours pour leur utilisation d'E/S? Le système est FreeBSD 8.3.
iotop est ce que vous voulez. La plupart des distributions Linux ont un package pour cela.
La réponse est d'utiliser top
puis d'appuyer sur m pour afficher IO pourcentage par processus/thread.
Vous pouvez utiliser ktrace si vous souhaitez tracer un seul processus:
$ ktrace -ti -p PID
Lisez le manuel pour ktrace pour savoir comment désactiver ktrace avant de l'utiliser. Quelque chose comme:
$ ktrace -p PID -f debug.txt
$ ktrace -C
$ kdump -f debug.txt
kdump, car la sortie n'est pas lisible par l'homme.
D'après une recherche rapide, pour l'analyse de réseau: vous pouvez soit utiliser lsof -i
ou sockstat
(http://www.freebsd.org/cgi/man.cgi?query=sockstat&sektion=1) pour identifier les sockets ouvertes par des processus spécifiques, vous pouvez alors utiliser tcpdump
pour vérifier les détails de cette connexion (http://www.thegeekstuff.com/2010/08/tcpdump-command-examples/#more-5676). Vous pouvez également essayer trafshow
et iftop
.
Pour les E/S disque: sous Linux, j'utilise sar -q
, il doit y avoir quelque chose de similaire.