Как определить причину высокого использования ресурсов за два часа на прошлой неделе?

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

Как я могу "оглянуться назад" и выяснить, кто или что использует эти ресурсы, не "ловя их в действии"?

Я использую Ubuntu 10.04.

4 ответа

Если вы не ведете полное ведение журнала аудита (каждый запущенный процесс и ресурсы, которые он использовал), вы действительно не можете. Лучшее, что вы можете сделать, это просмотреть все запланированные задачи (cron рабочие места, at задания) и все внешние влияния, которые вы можете каталогизировать (запланированные задания в других системах, необычный запрос отчета от The Big Boss и т. д.), чтобы сделать обоснованное предположение.

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

Помимо мониторинга ресурсов, который отслеживает периоды высокой загрузки ЦП для системы в целом, вы можете настроить мониторинг, который отслеживает длительные периоды высокой загрузки ЦП процессом. У меня есть кое-что в этом духе для моих веб-приложений и SQL-боксов, как для Linux, так и для Windows.

Иногда я вижу что-то всплеск и использую 100% одного ядра. Этого было бы недостаточно, чтобы вызвать оповещение, глядя на прямой процессор в четырехъядерной системе, но этого достаточно, чтобы на это смотреть.

В Ubuntu должен быть установлен пакет "systat", пакет автоматически устанавливает задание cron для сохранения всех системных показателей (CPU/MEM/DISK...) в "/usr/lib/sysstat", вам просто нужно прочитать исторические данные с сар -у |-д |-? -f имя файла

Существует ряд инструментов, которые могут отслеживать совокупное использование ЦП процессом и / или записывать это значение с течением времени. Если вам нужны мелкие детали того, что происходит:

  • Настройте сетевой отвод на провод, идущий к серверу (либо аппаратный отвод, либо зеркалирование портов).
  • Прикрепите сниффер с круглыми файлами pcin (для этого отлично подходит dumpcap).

Теперь у вас есть сетевой "черный ящик", который будет записывать все события за прошедшее количество минут / часов за X (в зависимости от размера файла захвата).

  • Дайте этой настройке работать, пока не произойдет событие.
  • Остановите процесс захвата и просмотрите захват пакетов.

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

Другие вопросы по тегам