AppEngine запускает новые экземпляры без необходимости в них - PullRequest
3 голосов
/ 04 мая 2011

Я подписчик на опцию «Всегда включен» в Google AppEngine. Я не понимаю, почему GAE должен запускать новые экземпляры, когда уже есть включенные экземпляры Always On, и у нет большого количества запросов в это время.

Это сводит меня с ума, поскольку сводит на нет то, что я получаю с подпиской AlwaysOn. Есть идеи, как исправить это поведение? Из-за этого у меня возникли проблемы с задержкой, которые я хотел устранить с помощью AlwaysOn. Я думаю об отмене подписки, так как она просто не работает. List of active instances

Ответы [ 3 ]

3 голосов
/ 04 мая 2011

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

К сожалению, мало что известно о деталях такого поведенияGAE (то есть решение, когда начать новый экземпляр).Возможно, в последнее время в вашем приложении было много трафика, много трафика вчера в одно и то же время дня, много трафика на прошлой неделе в один и тот же день недели и т. Д. Любой из этих факторов (и, скорее всего, многоболее неизвестные) может повлиять на число экземпляров делегатов GAE для вашего приложения.

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

0 голосов
/ 05 мая 2011

Я просто хотел бы добавить ответ, данный мне на идентичный вопрос, который я разместил в группе google-app-engine ( Ссылка ).Это помогло мне снизить вероятность того, что новые узлы будут созданы, когда в это время будет существовать какой-либо активный.Если вы этого не сделаете, каждый экземпляр будет обрабатывать только один запрос за раз.

Это мне очень помогло - попробуйте, если у вас такая же проблема, как у меня. Using_Concurrent_Requests

0 голосов
/ 04 мая 2011

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

Если у вас включено Запросы на прогрев , App Engine может ускорить запуск новых экземпляров, даже если ваши постоянные экземпляры могут справиться с текущей нагрузкой. В этом случае наличие динамического экземпляра не означает, что запрос пользователя был заблокирован в ожидании загрузки экземпляра.

Я бы предложил добавить достаточное количество журналов, чтобы определить, действительно ли динамические экземпляры обслуживают запросы пользователей при запуске. Если так, что они делают? Возможно, у вас есть одна динамическая страница, которая должна вызывать несколько дополнительных динамических обработчиков, чтобы отобразить все ресурсы страницы. Это может вызвать неожиданный всплеск трафика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...