Я использую Azure App Services для запуска около 15 веб-приложений PHP. Большинство из этих приложений подключаются к моему экземпляру "База данных Azure Database for MySQL". Это экземпляр Basic-level (1 vCore & 2GB memory).
Экземпляр MySQL содержит около 30 небольших баз данных (размером от 1 до 100 МБ).
Нагрузка на экземпляр MySQL стабильна и низка. Процессор постоянно находится под 20%, память постоянно меньше 50%, а IO даже не отображается в метриках на Azure Portal.
Моя проблема заключается в следующем:
Время от времени сервер отключается в течение 1 или 2 минут (максимум 5 минут). Я вижу, что клиентские приложения пытаются подключиться, они некоторое время висят, чтобы, наконец, получить сообщение об ошибке:
SQLSTATE[HY000] [2006] MySQL server has gone away
Кажется, это происходит случайно. Иногда несколько раз в неделю или даже день. Но иногда это происходит не неделями.
Что заметно, но когда это происходит, я вижу нисходящий всплеск в памяти и восходящий всплеск в процессоре в графе метрик на портале следующим образом:
Кто-нибудь испытывает ту же проблему в базе данных Azure для MySQL? И кто-нибудь нашел решение?
Я начинаю думать, что это вызвано движением ресурсов на стороне Azure, но у меня нет никаких доказательств, чтобы поддержать это. Если это так, разве это не произойдет без какого-либо простоя?
Масштабирование с базового 1-го уровня с помощью ядра Compute Gen 4 до базового 2 с помощью Compute Gen 5, похоже, решило проблему.
Не уверен, хотя что вызвало проблему.