Что вызывает всю активность диска на OS X?


58

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


1
Размышляя здесь, но это может быть что-то простое, например, mdsобновление индекса Spotlight.

4
9 раз из 10 прожектор это проблема. Одна вещь, которую я заметил, это то, что если у вас есть раздел bootcamp, обязательно включите его в черный список прожекторов, иначе mds всегда будет его жевать.
Брайан Шуц

5
Спасибо за предложение относительно Spotlight. Я только сейчас испытывал очень высокое чтение с диска, бросил раздел Boot Camp на вкладку «Конфиденциальность» в настройках Spotlight, и сразу же чтение диска стало плоским! Уже несколько месяцев сводит меня с ума.
Тим Китинг

Ответы:


60

От man iotop:

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

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

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

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

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


2
Довольно хорошо. iotop -C 5 12это хороший способ получить краткое изложение того, что происходит.
платный ботаник

50

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


1
Ооо, это жарко. fs_usageтакже позволяет фильтровать активность сети и файловой системы.
платный ботаник

2

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

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


1

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.