Wie kann man die aktivsten Prozesse in OS X isolieren?

Ich habe einige Prozesse, die von Zeit zu Zeit viele Laufwerkszugriffe durchführen, aber ich konnte bisher nicht isolieren, welcher Prozess oder welche Prozesse den Zugriff ausführen. Welchen Shell-Befehl kann ich ausgeben, um die intensivsten Prozesse für den Festplattenzugriff zu isolieren?

Antworten (1)

Nachdem ich versucht hatte, meine eigene Lösung durch fs_usageManipulation zu erstellen, entdeckte ich das DTrace- iotopSkript ( man iotop). Dies scheint wirklich den Trick zu machen, wenn es darum geht, Proben der Dateisystemaktivität in netten aktualisierten Intervallen zu geben, und ermöglicht es einem, schnell möglicherweise fehlerhafte Prozesse zu isolieren.

* HINWEISsudo : Sie müssen es mit oder als Benutzer ausführen root.

Zum Beispiel:

sudo iotop -C 5   # Simply gives an update every 5 seconds in default output format without clearing screen.
sudo iotop -CP 2  # Gives 2 second interval updates w/o clearing screen and I/O time based output.

Optionen:

iotop [-C] [-D|-o|-P] [-j|-Z] [-d device] [-f filename] [-m mount_point] [-t top] [interval [count]]

   -C     don't clear the screen
   -D     print delta times - elapsed, us
   -j     print project ID
   -o     print disk delta times, us
   -P     print %I/O (disk delta times)
   -Z     print zone ID
   -d device
          instance name to snoop (eg, dad0)
   -f filename
          full pathname of file to snoop
   -m mount_point
          mountpoint for filesystem to snoop
   -t top print top number only
Die anderen sehr nützlichen Befehle, um sich auf das Geschehen zu konzentrieren, sind DTrace-basierte rwsnoop und iosnoop
Ja @TheTentacle, ich habe iosnoopviel verwendet, aber im Allgemeinen festgestellt, fs_usagedass es schneller ist. Muss mit spielen rwsnoop, danke.