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

Сервер вылетает из-за невероятно высокой нагрузки

У меня проблема с KVM-виртуализированным сервером (на основе Proxmox), работающим на Debian 7.8 и PLESK. Иногда бывает нагрузка> 200 (sic!), И я просто не понимаю, почему.

Мониторинг показывает возрастающую нагрузку (сначала: 19, несколько минут спустя: 50, несколько минут спустя: 200), но журналы ничего не показывают за этот период.

Я просмотрел системный журнал и сообщения, и все службы работают нормально.

Если я попытаюсь подключиться через VNC, я получаю такие сообщения, как kernel hung tasks. Task XYZ stuck for 120 sec.

Есть идеи, что я могу здесь сделать?

Найти виновника большой нагрузки на систему непросто без обширной информации о приложениях, запущенных на сервере.

Поскольку вы можете воспроизводить каждые 30 минут, вы можете использовать следующий сценарий оболочки и загрузить его выходные данные непосредственно перед сбоем сервера:

#!/bin/sh

while true
do
  date >> /tmp/monitoring$$.txt    
  echo "PS reports:" >> /tmp/monitoring$$.txt
  ps aux | sort -nrk 3,3 | head -n 5 >> /tmp/monitoring$$.txt
  echo "I/O stat -c:" >> /tmp/monitoring$$.txt
  iostat -c >> /tmp/monitoring$$.txt
  echo "I/O stat -d:" >> /tmp/monitoring$$.txt
  iostat -d >> /tmp/monitoring$$.txt
  echo "I/O stat -m:" >> /tmp/monitoring$$.txt
  iostat -m >> /tmp/monitoring$$.txt
  echo "vmstat:"
  vmstat >> /tmp/monitoring$$.txt
  echo "mpstat:"
  mpstat -A >> /tmp/monitoring$$.txt
  sleep 300
done

В $$ будет заменен на pid сценария оболочки, что означает, что новый файл создается каждый раз, когда вы его запускаете. Пусть он работает в фоновом режиме.