Попытка исправить проблемы с производительностью Google App Engine — проблемы с масштабированием класса экземпляра

Наше приложение Google App Engine работает очень медленно, и я пытаюсь решить проблему, следуя приведенным здесь инструкциям:

https://cloud.google.com/appengine/docs/adminconsole/performancesettings

В нем говорится, что нужно настроить класс экземпляра внешнего интерфейса, отредактировав файл настроек. Я считаю, что в нашем приложении речь идет о файле app.yaml, хотя я не уверен. Я попытался добавить новые настройки в app.yaml:

application: app
version: 2-01
runtime: python27
### Lines I added ###
instance_class: B8
basic_scaling:
  max_instances: 11
  idle_timeout: 10m
### END lines added ###
api_version: 1
threadsafe: false

Но когда я пытаюсь развернуть с этими изменениями, выдает эту ошибку:

Ошибка 400: --- начать вывод сервера --- В настоящее время ваше приложение имеет пользовательские настройки производительности, которые несовместимы с функцией модулей. Вы должны очистить или перенести эти настройки уровня приложения, прежде чем сможете загрузить модуль, отличный от модуля по умолчанию. Дополнительную информацию см. в разделе «Производительность» на странице настроек приложения в консоли администратора. --- вывод конечного сервера ---

Я просмотрел всю консоль администратора и не могу найти раздел производительности или страницу под названием «Настройки приложения», если уж на то пошло. Я предполагаю, что структура консоли администратора изменилась после этого сообщения об ошибке. Но это оставляет меня в недоумении, как решить проблему, чтобы увеличить количество экземпляров в приложении. Как избавиться от этой ошибки и увеличить количество экземпляров?


person James    schedule 10.04.2015    source источник


Ответы (2)


Я не совсем уверен, что вы пытаетесь настроить здесь. Вы установили класс экземпляра B8 для интерфейсных экземпляров, что не является допустимой конфигурацией для интерфейсных экземпляров.

Прежде чем вслепую вносить изменения, вам нужно задать себе несколько вопросов. Является ли ваше приложение «медленным» из-за плохого дизайна с точки зрения загрузки данных/непараллельных операций на бэкэнде?

Вы можете просмотреть такие функции в средстве просмотра облачного мониторинга и с помощью статистики приложений: https://cloud.google.com/appengine/docs/python/tools/appstats

Однако, если на самом деле вам нужно настроить параметры конфигурации «масштабирования» appengines, то ваше после, вероятно, больше соответствует следующему:

application: app
version: 2-01
runtime: python27
instance_class: F4
automatic_scaling:
 automatic_scaling:
   min_idle_instances: 1
   max_idle_instances: automatic
   min_pending_latency: automatic
   max_pending_latency: automatic
api_version: 1
threadsafe: false
person Jesse    schedule 11.04.2015
comment
Спасибо за подсказку о appstats, я попробую установить это и посмотреть, что я найду. Когда я попытался заменить настройки, которые у меня были, на то, что вы разместили выше, это дало мне ошибку о избыточном автоматическом_масштабировании. Поэтому я удалил это, и он снова выдал мне ошибку о пользовательских настройках производительности. Все, что я хочу сделать, это масштабировать наши экземпляры, чтобы приложение не работало так медленно. Поскольку я не программировал проект с самого начала, а только унаследовал его, диагностика проблем с производительностью в приложении, возможно, на данный момент мне не по силам. Есть ли простой способ масштабирования для повышения производительности? - person James; 11.04.2015
comment
Если у вас было избыточное сообщение, это, скорее всего, означает, что у вас есть один и тот же параметр дважды в вашем файле app.yaml. Если вы можете просмотреть существующий файл app.yaml и обновить свой вопрос с помощью существующих параметров масштабирования. - person Jesse; 12.04.2015

Если вы используете модули (это не то же самое, что импортировать модули), вам необходимо настроить параметры производительности в каждом файле module.yaml. Приложение app.yaml или настройки в панели администратора больше не используются при развертывании модулей.

person Rene Marty    schedule 11.04.2015
comment
Я не думаю, что приложение использует модули, во всяком случае, в нем нет файлов module.yaml. Если это так, мне нужно преобразовать приложение, чтобы оно использовало модули? Искал инструкцию как это сделать и не нашел. Или есть способ настроить производительность в немодульном приложении? - person James; 11.04.2015