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

Сервер случайным образом зависает на несколько секунд

Я заметил странную проблему: мой сервер Ubuntu (веб) случайным образом зависает на несколько секунд, а затем снова восстанавливается. Сервер имеет следующие характеристики;

- 2 vCores of 2,4 GHz
- 8GB of RAM
- 40GB SSD
- 100 MBit network

Я в основном использую на сервере следующие службы;

- NGINX (webserver and proxy)
- Mysql
- Varnish

Проблема возникает не каждый день, но в те дни, когда это происходит, обычно происходит очень часто (примерно каждые 20 секунд). Я использую Netdata как инструмент веб-мониторинга и Newrelic для решения критических проблем.

Это снимок экрана с графиком ЦП, взятым из панели управления Netdata, поскольку вы можете видеть, что сервер перестает сообщать статистику, когда происходит зависание. Я обнаружил, что иногда количество операций ввода-вывода / ожидания резко увеличивается непосредственно перед тем, как сервер зависает, но после чтения потоков и поиска в Google о высоких значениях ввода-вывода / ожидания я не мог найти ничего полезного, кроме того, что [jbd2/vda1-8] процесс постоянно записывает на диск.

При запуске таких инструментов мониторинга, как top, ps, iotop and htop Я не вижу никаких процессов, использующих чрезмерное количество ресурсов, даже когда возникает проблема с зависанием.

При входе на сервер с помощью KVM хостинг-провайдера (OVH) я вижу следующее сообщение; NMI watchdog: BUG: soft lockup CPU#0/1 stuck for 21s! [process]. Также исследование этого сообщения об ошибке не дало много информации или решения. В настоящее время у меня заканчиваются идеи о том, что может вызвать эти проблемы, поэтому любая помощь приветствуется.

Ваш VPS, вероятно, ограничивает использование вашего процессора и диска, вызывая очевидное зависание, когда регулирование слишком сильное. Проверить через top, если у вас процессор steal время велико во время (или непосредственно до / после) зависаний.

Я не могу написать комментарий, как все остальные, но должен дать «официальный» ответ, хотя все, что я могу предложить, - это предположения. :-) Поскольку это VPS, то есть виртуальная машина (по-видимому, KVM), я могу представить, что у вашего хостера есть какая-то текущая закулисная инфраструктурная работа или проблемы с надежностью. Для вашей виртуальной машины это может означать

  • По какой-то причине виртуальная машина переносится с одного физического сервера на другой (для этого требуется, чтобы виртуальный процессор был остановлен на мгновение, чтобы состояние виртуальной машины могло быть передано по сети). Признаком этого может быть (по моему опыту) то, что системные часы отключены на несколько секунд и должны быть исправлены демоном ntp.
  • хранилище, на котором находится виртуальный диск вашего сервера, недоступно в течение короткого промежутка времени (это, кстати, скорее всего, не локальный SSD, а некоторое дисковое пространство на сервере SAN или даже NFS). Таким образом, процессы будут зависать при вводе-выводе, что обычно означает, что значение загрузки системы увеличивается, даже если загрузка ЦП низкая.

Как я уже сказал, только догадки, но, возможно, это идея поговорить с хостером.