Масштабированный сервис приложений, похоже, плохо масштабируется. Направляет весь трафик на экземпляр со 100% загрузкой ЦП.
У меня есть план обслуживания приложения, который масштабирован до двух экземпляров. Мне удалось получить статистику по двум экземплярам, один из которых загружен на 100%, а другой - на 5%. Это проблема, потому что кажется, что все HTTP-запросы отправляются на тот, который использует процессор на 100%, и, следовательно, веб-страница загружается очень медленно.
Я выключил ARR Affinity согласно этой странице
Есть ли другая причина, по которой все запросы API и HTTP отправляются одному и тому же экземпляру? Что я могу сделать, чтобы сбалансировать нагрузку между двумя экземплярами?
2 ответа
Таким образом, проблема исправилась, когда я уменьшил масштаб с P2v2 до S3. Это обе одинаковые цены, одна премиум-класса, другая стандартного уровня.
Все запросы теперь уравновешены равномерно, и время отклика веб-сайта сократилось с 10-12 секунд до 60 мс, как должен делать хороший веб-сайт.
До сих пор не уверен, почему это произошло в первую очередь
Есть ли другая причина, по которой все запросы API и HTTP отправляются одному и тому же экземпляру?
Если у вас есть балансировщик нагрузки, с помощью сохранения сеанса вы можете сохранить доступ одного и того же клиента к одной и той же виртуальной машине.
На уровнях Free и Shared приложение получает минуты ЦП на экземпляре общей виртуальной машины и не может масштабироваться. На других уровнях приложение запускается и масштабируется следующим образом.
Когда вы создаете приложение в службе приложений, оно помещается в план службы приложений. Когда приложение запускается, оно запускается на всех экземплярах виртуальных машин, настроенных в плане службы приложений. Если несколько приложений находятся в одном и том же плане службы приложений, все они используют одни и те же экземпляры виртуальных машин. Если у вас есть несколько слотов развертывания для приложения, все слоты развертывания также работают на одних и тех же экземплярах виртуальной машины. Если вы включаете журналы диагностики, выполняете резервное копирование или запускаете WebJobs, они также используют циклы ЦП и память на этих экземплярах ВМ.
Таким образом, план службы приложений является единицей масштабирования приложений службы приложений. Если план настроен на запуск пяти экземпляров виртуальных машин, то все приложения в плане запускаются на всех пяти экземплярах. Если план настроен для автоматического масштабирования, то все приложения в плане масштабируются вместе на основе параметров автоматического масштабирования.
Что я могу сделать, чтобы сбалансировать нагрузку между двумя экземплярами?
Вы можете использовать условия автоматического масштабирования для масштабирования виртуальных машин на основе показателя, например, 50% ЦП на экземпляр. Информацию о масштабировании приложения см. В разделе Подсчет количества экземпляров вручную или автоматически.