web-dev-qa-db-fra.com

Recherche de processus avec des E / S disque lourdes sur FreeBSD

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.

15
Sergey Efimov

iotop est ce que vous voulez. La plupart des distributions Linux ont un package pour cela.

12
Jude

La réponse est d'utiliser top puis d'appuyer sur m pour afficher IO pourcentage par processus/thread.

9
Sergey Efimov

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.

2
eis

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.

0
theMarceloR