Rate this post

Продолжаем рассматривать тему, как на примерах диагностировать проблемы в работе сервера. В прошлой статье мы искали как найти, что использует cpu, теперь разберемся с iowait.n

Использование «top»: проблемы с «wa» (iowait).

    n

  1. Запустить утилиту «top»: ключ «top».
  2. Проанализировать действия, которые происходят в «%CPU».что делать проблемы с iowait

nВидим, что более 70 % ресурсов используется в «wa» (iowait).n

    n

  1. Проверить, всё ли нормально с памятью.поиск проблем с iowait
  2. Отсортировать по «CPU».
  3. Определить «PID» проблемного процесса.диагностика и устранение iowat событий

nЗдесь он запущен от пользователя «postgres» — это говорит о проблемах в работе баз данных.n

    n

  1. Попробовать вывести все процессы: ключ «ps -ef | grep 1507» (1507 — PID).решение зависаний iowait

nЕдинственное, понятно, что пользователь запустил процесс, связанный с базой данных. Выполняется копирование.n

    n

  1. Посмотреть «логи» базы данных: ключ «tail — f <path>» (path -расположение файла «лога»).

nЗдесь мы видим, какие процессы происходят в базе. «Лог» обновляется, поэтому возможно следить за изменениями, которые происходят.n

    n

  1. Проверить открытые файлы по проблемному PID: ключ «lsoft -p 1507».

nТак как это «postgres», открытых файлов будет много, и данная информация мало чем поможет. Но утилита «lsoft» может помочь с другими базами данных.n

Общий основной алгоритм поиска проблемы:

    n

  1. Запустить инструмент, который покажет, какой ресурс загружает процессор.
  2. Найти процесс, который вызывает это.
  3. С помощью утилит выявить пользователя, который инициировал процесс.
  4. Если мы не можем понять по ключу запуска процесса:

n

  • Открываем и изучаем «логи».
  • Разбираемся с файлами, которые запущены.

Решение проблем с производительностью сервера, [email protected]