Назад | Перейти на главную страницу

как отследить постоянный доступ к диску в Linux

У меня есть машина, на которой работает несколько сервисов, но я не верю, что они несут ответственность за иногда тяжелый доступ к диску на этом сервере (массивное движение головы, которое я слышу после долгих периодов почти полного отсутствия движения)

Как я могу узнать, какой процесс что-то делает на жестком диске, когда снова наступает такой период?

Я думал использовать команду linux "lsof", но у нее потрясающий вывод и параметры, поэтому я ничего не вижу.

Можете ли вы помочь мне, как бы я

Было бы здорово, если бы вы могли продемонстрировать несколько полезных опций lsof для такого случая. Спасибо.

редактировать Спасибо за все ответы. Это намного больше, чем я ожидал, и я проголосовал за все ответы (до сегодняшнего дня)

Попробуйте посмотреть "iotop". Он предоставит вам именно то, что вам нужно, например, отображение использования ввода-вывода для каждого процесса. Поставляется с большинством современных дистрибутивов Linux.

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

Это происходит раз в день? Если да, возможно, это система, которая проверяет репозитории на наличие обновлений или автоматически устанавливает исправления безопасности, если она настроена таким образом.

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

Я также согласен с предложениями top типа коммунальные. Однако вы можете быстрее найти источник проблемы, если посмотрите на свои задания cron. Проверить содержимое /etc/cron.* и посмотрите, есть ли какие-либо задания cron, которые запускают процессы, которые вызовут много дискового ввода-вывода. Это может быть что-то простое, например updatedb обновление базы данных локации.

Если серверы разрешают вход пользователя в систему, вам также следует проверить пользовательские crontab. Обычно они встречаются в /var/spool/cron/tabs.

Часто, когда у вас есть система, в которой службы / приложения не выполняют много операций ввода-вывода, но вы замечаете большую активность жесткого диска, вы обнаружите, что система часто меняет местами.

В этой статье есть хорошее объяснение того, как это работает:

Мониторинг виртуальной памяти с помощью vmstat

Если вам не нужна подробная информация о том, к каким файлам осуществляется доступ, я считаю, что вы также можете получить эту информацию, используя top. Я использую htop ( top оболочка) для мониторинга использования ввода-вывода, сортировка вывода по разным полям ввода-вывода. Он дает возможность рассмотреть следующие столбцы: RCHAR, WCHAR, SYSCR, SYSCW, IO_READ_RATE, IO_WRITE_RATE, IO_RATE. Посмотри на man top если это то, что вам нужно.

Смотреть top какое-то время. Программы, связанные с вводом-выводом, обычно застревают в D-состоянии. Так что отсортируйте свой лучший результат по процессору и просто посмотрите, какой процесс будет наверху с длительными периодами в D-состоянии.

Упомянутые таким образом инструменты отлично подходят для мониторинга в реальном времени - хороший вопрос, возможно, для нового сообщения: что можно использовать исторически - вариант использования:

на моем ящике наблюдался всплеск ввода-вывода в 01:00

откуда ты знаешь, откуда он взялся? :)