Почему перезапуск моего экземпляра Azure WebApps вызвал простой в несколько часов?

Мой экземпляр Azure WebApps (работающий на Tomcat, Linux) хорошо работал в течение 9 месяцев. Недавно произошел простой на пару часов, который, по словам инженера службы поддержки Microsoft, был вызван следующими причинами:

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

  1. Всегда используйте 2 экземпляра
    Эти экземпляры находятся в разных обновлять домены и, следовательно, не будут обновляться одновременно. В то время как один рабочий экземпляр обновляется, другой все еще активен обслуживать веб-запросы. Веб-приложение в настоящее время настроено для работы только на один экземпляр. Поскольку у вас только один экземпляр, вы можете ожидать простоя потому что при обновлении платформы службы приложений экземпляр на которое запущено в вашем веб-приложении, будет обновлено. Таким образом, ваша сеть процесс приложения будет перезапущен, и в нем будет время простоя.
  1. Используйте Проверка работоспособности
    Эта функция автоматически удаляет неисправный экземпляр от вращения, тем самым повышая доступность. Эта функция будет пинговать указанный путь проверки работоспособности на всех экземплярах вашего веб-приложения каждые 2 минут. Если экземпляр не отвечает в течение 10 минут (5 пингов), экземпляр определен как неисправный, и наша служба будет остановлена маршрутизация запросов к нему. Настоятельно рекомендуется для производственных приложений. использовать эту функцию и минимизировать любое возможное время простоя, вызванное неисправному экземпляру. Примечание. Функция проверки работоспособности работает только для приложения, размещенные более чем на одном экземпляре. Для большего информацию проверьте в документации ниже. https://github.com/projectkudu/kudu/wiki/Health-Check- (Preview)

Итак, я понимаю, что могу избежать подобных редких событий, следуя лучшим практикам. Однако мне интересно, есть ли что-то еще, потому что проблема в том, что с тех пор всякий раз, когда я перезапускаю WebApp (через портал Azure), у него простаивает от 2 до 5 часов, после чего оно автоматически устраняется.

Инженер службы поддержки Microsoft ответил, что это произошло из-за переполнения временного каталога.

Использование временного файлового пространства почти исчерпано. Приложение может испытывать проблемы со стабильностью и производительностью.

Приложения используют временные файлы во время обработки в памяти, загрузка контента из вызовов API и т. д. Если код приложения не очищается, временное пространство используется.

Рекомендуемое действие Для постоянного исправления просмотрите и проанализируйте каждый приложение, размещенное в этом плане службы приложений, и определить приложения, которые не выполняют надлежащих процедур очистки.

Я просмотрел каталог \ tmp, и он был практически пуст. Также предполагается, что перезапуск WebApp очистит временный каталог, поэтому я не понимаю, почему у меня должны возникать проблемы именно после перезапуска.

Запрос в службу поддержки Microsoft все еще открыт. Я надеюсь изучить другие возможности решения проблемы - так как это продолжается уже две недели.

Вот части журналов, которые могут иметь отношение (пока WebApp отключен) с запутанными идентификационными данными.

Docker

2020-09-22T16: 09: 57.514Z ОШИБКА - Контейнер examplewebapp__ для сайта examplewebapp__a81a не начать в пределах ожидаемого срока. Истекшее время = 600,9031978 сек. 2020-09-22T16: 09: 57.515Z ОШИБКА - Контейнер examplewebapp__ не ответил на HTTP-запросы на порт: 80, неудачный запуск сайта. См. Журналы контейнера для отладки. 2020-09-22T16: 09: 57.544Z INFO - Пример остановки сайтаwebapp__a81a потому что это не удалось во время запуска. 2020-09-22T16: 14: 53.608Z ИНФОРМАЦИЯ - Получение образа из Docker-хаба: mcr.microsoft.com/azure-app-service/tomcat:9.0-java11_200319054033 2020-09-22T16: 14: 53.687Z ИНФОРМАЦИЯ - 9.0-java11_200319054033 Извлечение из azure-app-service / tomcat 2020-09-22T16: 14: 53.720Z ИНФОРМАЦИЯ - Дайджест: sha256: c2c5 ....... 73d96 2020-09-22T16: 14: 53.722Z ИНФОРМАЦИЯ - Статус: Изображение актуально для mcr.microsoft.com/azure-app-service/tomcat:9.0-java11_200319054033 2020-09-22T16: 14: 53.726Z ИНФОРМАЦИЯ - Получение изображения выполнено успешно, затраченное время: 0 Минуты и 0 секунд 2020-09-22T16: 14: 53.825Z INFO - Начало контейнер для сайта 2020-09-22T16: 14: 53.825Z INFO - docker run -d -p 6807: 80 --name examplewebapp__aetete -e WEBSITE_SITE_NAME = exampleWebApp -e WEBSITE_AUTH_ENABLED = Ложь -e WEBSITE_ROLE_INSTANCE_ID = 0 -e WEBSITE_HOSTNAME = examplewebapp.azurewebsites.net -e WEBSITE_INSTANCE_ID = dgsgdhs ... sdshsd -e HTTP_LOGGING_ENABLED = 1 mcr.microsoft.com/azure-app-service/tomcat:9.0-java11_200319054033[1215 impression2020-09-22T16:14:56.980Z INFO - Инициирование запроса на прогрев для контейнер examplewebapp__aetete для сайта examplewebapp__a81a 2020-09-22T16: 15: 17.526Z ИНФОРМАЦИЯ -Жду ответа на разминку запрос контейнера examplewebapp__aetete. Затраченное время = 20,5455075 sec 2020-09-22T16: 15: 33.144Z ИНФОРМАЦИЯ - Ожидание ответа на разминку запрос контейнера examplewebapp__aetete. Затраченное время = 36,1635991 sec 2020-09-22T16: 15: 54.629Z ИНФОРМАЦИЯ - Ожидание ответа на разминку запрос контейнера examplewebapp__aetete. Затраченное время = 57,6488951 sec 2020-09-22T16: 16: 09.914Z INFO - Ожидание ответа на разминку запрос контейнера examplewebapp__aetete. Затраченное время = 72,9343365 sec 2020-09-22T16: 16: 25.080Z INFO - Ожидание ответа на разминку запрос контейнера examplewebapp__aetete. Затраченное время = 88,1001723 sec 2020-09-22T16: 16: 40.281Z INFO - Ожидание ответа на разминку запрос контейнера examplewebapp__aetete. Прошедшее время = 103,3011586 сек

Default_Docker

2020-09-22T11: 45: 17.432527708Z / | / / | | / | | / \ / 2020-09-22T11: 45: 17.432531708Z _ | __ / _____ __ / | | ___> 2020-09-22T11: 45: 17.432535708Z / / / 2020-09-22T11: 45: 17.432539208Z A P P S E R V I C E O N L I N U X 2020-09-22T11: 45: 17.432542708Z 2020-09-22T11: 45: 17.432562008Z Документация: http://aka.ms/webapp-linux 2020-09-22T11: 45: 17.432565208Z 2020-09-22T11: 45: 17.432568708Z ПРИМЕЧАНИЕ : Никакие файлы или системные изменения вне / home не сохранятся после текущего сеанса вашего приложения. / home - это ваше приложение постоянное хранилище и используется всеми экземплярами сервера. 2020-09-22T11: 45: 17.432573808Z 2020-09-22T11: 45: 17.432576808Z 2020-09-22T11: 45: 17.432836008Z Настройка openrc ... 2020-09-22T11: 45: 20.011688823Z * Зависимости службы кэширования ... [ ок] 2020-09-22T11: 45: 20.040479470Z Обновление / etc / ssh / sshd_config до используйте ПОРТ 2222 2020-09-22T11: 45: 20.056556396Z Запуск службы ssh ... 2020-09-22T11: 45: 23.318735610Z ssh-keygen: создание новых ключей хоста: RSA DSA ECDSA ED25519 2020-09-22T11: 45: 27.654655866Z * Запуск sshd ... [ok] 2020-09-22T11: 45: 27.675340497Z ## Печать информации о сборке ... 2020-09-22T11: 45: 27.685373113Z
ПАКЕТ | ВЕРСИЯ | COMMIT 2020-09-22T11: 45: 27.685419013Z
Microsoft.AppService.EasyAuthExtensionsJava |
1.0.011720002-alpha-793ad718 | 793ad718 2020-09-22T11: 45: 27.685426413Z Microsoft.AppService.WebsitesExtensionsJava |
1.0.011730003-alpha-53ae38d3 | 53ae38d3 2020-09-22T11: 45: 27.685430813Z себя | 1.0.011730002-alpha-c6f00046 | c6f00046 2020-09-22T11: 45: 27.687085515Z ## Готово, печать информации о сборке.

2020-09-22T11: 55: 23.212406842Z _____
2020-09-22T11: 55: 23.212435742Z / _ \ __________ _________ ____
2020-09-22T11: 55: 23.212440842Z / / \ ___ / | _ __ _ / __ \ 2020-09-22T11: 55: 23.212444742Z / | / / | | / | | / \ / 2020-09-22T11: 55: 23.212448142Z _ | __ / _____ _ / | | ___>

0
задан 23 September 2020 в 19:34
1 ответ

Следующая информация получена из обращения в службу поддержки Microsoft.

Причина, по которой это происходило, заключалась в том, что временное хранилище файлов было израсходовано. Для P1V2 Linux вы получаете 35 ГБ временного хранилища файлов, а для P2V2 Linux — 69 ГБ временного хранилища файлов.

Вы можете проверить, сколько использует ваше приложение, перейдя в «Диагностика и решение проблем», а затем выбрав «Использование временных файлов в рабочих процессах».

Обратите внимание, что Microsoft не поддерживает фактический доступ к этим временным файлам, ни удалять их, кроме как путем обновления вашего экземпляра (например, с P1V2 до P2V2), ожидания 15 минут, а затем его снижения.

Обратите внимание, что необходимо подождать 15 минут, потому что в противном случае вы рискуете вернуться к своему ранее существовавшему экземпляру, но без его форматирования.

Обратите внимание, что инженер службы поддержки Microsoft внес следующие дополнительные изменения (я не знаю, были ли они необходимы для решения проблемы):

  1. Остановил слот развертывания, который я использовал

  2. Добавлен параметр конфигурации слота приложения WEBSITES_CONTAINER_START_TIME_LIMIT = 1800

  3. Версия веб-сервера Java изменена с 9.0 на 9.0.20

  4. Удалены развертывания, перейдя в /home/deployments и выполнив

    rm -rf *

См. этот вопрос дополнительные сведения о временных файлах Azure.Обратите внимание, что решение для их просмотра не работает для веб-приложений Azure для Linux

.
4
ответ дан 11 October 2020 в 10:53

Теги

Похожие вопросы