56

Иногда мой Macbook Pro тормозит, когда жесткий диск бесконечно щелкает. Загрузка процессора низкая, но приложения и элементы меню реагируют медленно. Есть ли утилита, которая может помочь мне определить, что происходит, например, количество прочитанных / записанных байтов или файлов, открытых / закрытых для процесса, с течением времени?

4 ответа4

60

От man iotop:

iotop отслеживает дисковый ввод-вывод по процессу и печатает сводный отчет, который обновляется каждый интервал.

Это измерение дисковых событий, которые прошли через системные кэши.

Поскольку для этого используется DTrace, эту команду может выполнить только пользователь root или пользователи с привилегией dtrace_kernel.

Это может быть не совсем то, что вам нужно, но это скрипт ksh, который оборачивается вокруг dtrace, поэтому вы должны быть в состоянии выяснить, как заставить dtrace делать то, что вам нужно, если iotop не обрабатывает его по умолчанию.

Однако что-то вроде iotop -C 5 12 должно дать вам кое-что для начала: он выдаст 12 сэмплов, каждый по 5 секунд.

49

Вы также можете использовать fs_usage чтобы получить подробный отчет о том, какие приложения попадают на диск.

2

Я всегда замечал это по утрам в субботу, и оказалось, что это locate, которое обновляет свою базу данных в 3:15 ночи пятницы.

Я попытался отключить его конфигурацию launchd/System/Library/LaunchDaemons/com.apple.locate.plist), но она все равно работала, поэтому я просто /usr/libexec/locate.updatedb . Проблема ... смягчены.

1

Это может быть подкачка ОС к виртуальной памяти, а не что-то конкретное для приложения. Вы можете попытаться выйти из менее часто используемых приложений или хотя бы перезапустить некоторые приложения, которым нравится со временем создавать кэш-память в памяти (например, Safari). Просмотрите статистику памяти для каждого процесса с помощью Activity Monitor, чтобы найти вероятных виновников. Если выход из некоторых приложений, интенсивно использующих память, временно устраняет проблему, попробуйте добавить ОЗУ.

Если активность диска не связана с подкачкой страниц, вы можете использовать fs_usage чтобы отследить его до одного или нескольких конкретных процессов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .