2013-04-03 32 views

Odpowiedz

26

Zastosowanie iotop (jako root), na przykład:

iotop -C 3 10 

ale najlepszym sposobem (dla mnie) jest:

sudo fs_usage -f filesys 
+0

bardzo przydatne. iotop tylko pokazał mi, że mds i mdworker wbijali mój dysk. fs_usage pokazał ziliony plików w Mail.app, że indeksował, więc wskazał mi właściwy kierunek, co do problemu. –

+4

Zauważ, że w przypadku El Capitan to nie działa, ponieważ 'iotop' polega na' dtrace'. I El Capitan wyłącza 'dtrace' z trybem bezkodowym (SIP). – Brice

+1

To też jest zepsute w Sierra. –

4

Ponieważ nie jest odpowiedzią tutaj o tym, jak to zrobić programowo, oto kilka dodatkowych informacji. Możesz pobrać trochę informacji z libproc, jeśli możesz użyć C/C++/ObjectiveC++. Funkcja proc_pid_rusage daje kilka informacji zasobów dla danego procesu, ale te związane z pytaniem jest:

struct rusage_info_v3 { 
    ... 
    uint64_t ri_diskio_bytesread; 
    uint64_t ri_diskio_byteswritten; 
    ... 
}; 

Przykładowy kod:

pid_t pid = 10000; 
rusage_info_current rusage; 
if (proc_pid_rusage(pid, RUSAGE_INFO_CURRENT, (void **)&rusage) == 0) 
{ 
    cout << rusage.ri_diskio_bytesread << endl; 
    cout << rusage.ri_diskio_byteswritten << endl; 
} 

Zobacz <libproc.h> i <sys/resource.h> aby uzyskać więcej informacji.

1

Monitor aktywności pokazuje statystyki procesów we/wy w zakładce "dysk" (być może jest to nowe od czasu zadawania tego pytania). enter image description here Zobacz kolumny "Odtworzone bajty" i "Odczytywanie bajtów".

-1

Znalazłem iStat Menus, który znajduje się na pasku menu. Pokazuje tylko 5 najlepszych użytkowników dysku do odczytu/zapisu (i nie jestem pewien, czy jest to suma, ale nie sortuje).