Гибкая система приложений Google всегда направляет трафик на один и тот же экземпляр? - PullRequest
0 голосов
/ 08 февраля 2019

Приложение node.js, использующее кластер, развернутый в google app engine, масштабируется, но трафик всегда отправляется одному экземпляру.

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

Масштабирование работает нормально, когда оно достигает target_utilization, оно порождает другой экземпляр.

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

Так что мне интересно, если трафик не всегда идет к одному и тому же экземпляру, каким-либо способом доказать или улучшить?

Редактировать:

Тест на нагрузку - это обычный тест на нагрузку, первый из которых состоял из 20 потоков с увеличением 5 секунд в цикле 4 раза.

Редактировать 2:

Обновление: теперь оно корректно масштабируется.Не уверен, что моя кодовая база сильно изменилась, но маршрутизация тоже выполнена правильно.Возможно, обновление облачной платформы Google устранило мою проблему?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Объяснение Buckors по поводу масштабирования верно, однако вы все равно должны увидеть улучшение в нагрузочных тестах.Быстрый способ проверить, действительно ли ваши экземпляры получают распределенную нагрузку, - это проверить журналы Stackdriver .

Вы можете перейти на

Stackdriver -> Приложение GAE - [Имя службы]

И затем вы сможете увидеть список запросов, которые обслуживает ваша служба.обработка / обрабатывается.Затем вы можете отфильтровать его по отдельным идентификаторам экземпляров App Engine Flex, расположенным на облачной консоли в разделе App Engine -> Экземпляры , и вы увидите такой идентификатор, как "aef- Имя службы -alphaчисловой "

Если ваши запросы не маршрутизируются должным образом, я рекомендую вам опубликовать вашу проблему в Частном выпуске , где Google Cloud Engineering должна иметь возможность изучить ваш проект.

0 голосов
/ 21 марта 2019

Если вы запускаете тест, когда есть только минимальное количество экземпляров, и во время тестирования он увеличивается, время между тестами не изменится, потому что масштабирование позволяет приложению сопоставлять количество запросов сресурсы, необходимые для их обслуживания, избегая ошибок 5XX.

Если ваш тест создает экземпляры spawn, то эти экземпляры работают, потому что если нет, они убиваются, поскольку они не нужны.Масштабирование не ускоряет время обслуживания, а соответствует количеству ресурсов, необходимых для обслуживания X запросов в любой точке, поэтому приложение всегда может обрабатывать запросы с одинаковой скоростью.

...