Не уверен, общеизвестна ли такая проблема, прямых объяснений найти не удалось.
У меня есть обычная виртуальная машина в Azure небольшого размера (B1s) под управлением Ubuntu 18.04 от Canonical.
На нем есть обычный стек LNMP с простым веб-сайтом WordPress. Все ПО - последние стабильные версии из официальных репозиториев.
Все работает нормально и нагрузка на сервер обычно очень небольшая. Однако иногда (иногда и я не мог обнаружить какой-либо конкретный временной шаблон или что-то в этом роде) среднее количество операций ввода-вывода в секунду увеличивается примерно до 400 / сек, где он достигает ограничения, разрешенного для этого размера виртуальной машины, и виртуальная машина зависает и ни на что не отвечает. Единственное, что помогает, - это перезапуск виртуальной машины с портала Azure, и после этого она снова работает нормально.
Стоит отметить, что все такие пакеты предназначены только для операций чтения. Также они никак не связаны с посещаемостью сайта. Напротив, некоторые из таких пиков случались, когда посещаемость веб-сайта была минимальной за день.
Нет заданий cron или каких-либо других скриптов, которые могли бы создать такую нагрузку (по крайней мере, я ничего не знаю). Помимо стандартной установки Ubuntu есть только Nginx, MySQL, PHP и PHP-FPM. Да, и есть fail2ban с настройками по умолчанию, чтобы отключить непослушных брутфорс-ботов.
Вот моя диаграмма IOPS из консоли Azure за последнюю неделю. Видно, что всегда нагрузка на ввод-вывод довольно низкая, а потом она просто взлетает до небес.
Есть идеи, что может быть причиной такого поведения и с чего начать?