У нас есть веб-приложение, работающее в Google Cloud. На данный момент он все еще находится в разработке. У нас есть балансировщик нагрузки, привязанный к трем отдельным группам экземпляров для трех различных функций, все они работают на серверах Tomcat 8.
Одна из этих групп экземпляров, я назову ее группой отчетов, использовала один и тот же файл WAR в течение нескольких месяцев, и мы только за последний час обновили его.
До обновления я никогда не видел, чтобы группа отчетов превышала один экземпляр. Незадолго до обновления я посмотрел на Tomcat Manager на этом экземпляре, и он показал более тысячи активных сеансов.
После обновления мы запустили тест, и POOF, у нас было два экземпляра, и, глядя на их менеджеров Tomcat, каждый из них показывал несколько сотен сеансов, но в целом их было меньше 1000. В какой-то момент, когда я печатал это кратко увеличилось до четырех случаев.
Может ли кто-нибудь предложить мне какое-либо представление о том, что произошло, почему изменилось поведение и как балансировщики нагрузки и группы экземпляров решают создавать дополнительные экземпляры?
И как не дать экземплярам размножаться как излишне резвые песчанки?
Если вы используете группу экземпляров, балансировщики нагрузки не принимает никакого решения к размножению, как резвые песчанки. Чтобы разрешить автомасштабирование в управлении группа экземпляров вам необходимо настроить некоторые из следующих политик:
Проверьте в своем проекте GCP конфигурацию балансировщика нагрузки и группы экземпляров, чтобы узнать, какую политику вы настроили.
Что касается файла войны, если вы внесли изменения в файл кода, новая версия может использовать больше ресурсов, чем предыдущая. В новой версии может быть меньше сеансов, но использование ЦП или памяти может быть более высоким. Если это пользовательский файл .war, вы можете проверить в исходном коде, какие изменения вы в него вносите и как это повлияет на вашу инфраструктуру.