Как я могу получить программную статистику для процессов ввода-вывода на диске в Mac OS X. В приложении "Монитор активности" или в команде "сверху" мы можем получить статистику всего системного диска. Для справки Аналогичный вопрос задан для ПК.
Статистика процесса чтения/записи дисков процесса в Mac OS X
Ответ 1
Используйте iotop
(от имени root), например:
iotop -C 3 10
Но лучший способ (для меня):
sudo fs_usage -f filesys
Ответ 2
Поскольку здесь нет ответа о том, как это сделать программно, вот еще информация. Вы можете получить некоторую информацию из libproc, если вы можете использовать C/С++/ObjectiveС++. Функция proc_pid_rusage
дает вам кучу информации о ресурсах для данного процесса, но те, которые связаны с вашим вопросом:
struct rusage_info_v3 {
...
uint64_t ri_diskio_bytesread;
uint64_t ri_diskio_byteswritten;
...
};
Пример кода:
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;
}
Подробнее см. <libproc.h>
и <sys/resource.h>
.
Ответ 3
Монитор активности отображает статистику процесса ввода-вывода на вкладке "диск" (возможно, ее новая, поскольку этот вопрос задан). См. "Байт, написанный" и столбцы "Чтение байтов".
Ответ 4
Поскольку OP специально запрашивал статистику дискового ввода-вывода, я бы порекомендовал
sudo fs_usage -f diskio
который фокусируется только на событиях чтения/записи, в отличие от -f filesys
как указано в принятом ответе. (Не знаю, была ли опция diskio
тогда недоступна.)
Ответ 5
Я нашел iStat Menus, который находится в строке меню. Показывает только 5 лучших пользователей чтения/записи на диске (и я не уверен, что это сумма, но она не сортируется).