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

Я замечаю странную проблему, мой сервер 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, поскольку вы можете видеть, что сервер перестает сообщать статистику, когда происходит зависание. Я обнаружил, что иногда IO/Wait всплывает непосредственно перед тем, как сервер зависает, но после чтения потоков и поиска в Google о высокой IO/Wait я не смог найти ничего полезного, кроме [jbd2/vda1-8] Процесс постоянно пишет на диск.

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

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

2 ответа

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

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

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

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

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