Продолжаем рассматривать тему, как на примерах диагностировать проблемы в работе сервера. В прошлой статье мы искали как найти, что использует cpu, теперь разберемся с iowait.n
Использование «top»: проблемы с «wa» (iowait).
nВидим, что более 70 % ресурсов используется в «wa» (iowait).n
- n
- Проверить, всё ли нормально с памятью.
- Отсортировать по «CPU».
- Определить «PID» проблемного процесса.
nЗдесь он запущен от пользователя «postgres» — это говорит о проблемах в работе баз данных.n
nЕдинственное, понятно, что пользователь запустил процесс, связанный с базой данных. Выполняется копирование.n
- n
- Посмотреть «логи» базы данных: ключ «tail — f <path>» (path -расположение файла «лога»).
nЗдесь мы видим, какие процессы происходят в базе. «Лог» обновляется, поэтому возможно следить за изменениями, которые происходят.n
- n
- Проверить открытые файлы по проблемному PID: ключ «lsoft -p 1507».
nТак как это «postgres», открытых файлов будет много, и данная информация мало чем поможет. Но утилита «lsoft» может помочь с другими базами данных.n
Общий основной алгоритм поиска проблемы:
- n
- Запустить инструмент, который покажет, какой ресурс загружает процессор.
- Найти процесс, который вызывает это.
- С помощью утилит выявить пользователя, который инициировал процесс.
- Если мы не можем понять по ключу запуска процесса:
n
- Открываем и изучаем «логи».
- Разбираемся с файлами, которые запущены.
Решение проблем с производительностью сервера, [email protected]