Вам нужно будет определить свои узкие места: если ваш сервер исчерпал память с помощью одного кота, нет смысла использовать второй кота. Кроме того, если ваш процессор максимален, обычно нет преимущества в расширении второго кота.
Однако, если вы все равно балансируете между разными серверами, у вас достаточно центрального процессора и памяти на одной машине, вы можете получить что-то от запуска двух кошек на одной машине: например. вы можете удалить один из них за раз из loadbalancer, обновить его и снова добавить в балансировщик - затем сделать то же самое для второго.
Но ... вы можете сделать это с одним tomcat на VM в любом случае.
Я боюсь: вам придется ответить на этот вопрос себе, измерив: если нагрузка, которую вы получаете, может обрабатываться 4 котами на 4 экземплярах EC2, может ли она также обрабатываться 4 котами на 2 Экземпляры EC2? Сколько ресурсов (процессор, память, ввод-вывод) обычно у вас есть на каждом из экземпляров EC2, которые вы запускаете? Все это сильно зависит от вашего usecase и того, что на самом деле делают машины.
Другие примеры: Если ваша пропускная способность сети насыщена, когда у вас остался центральный процессор и память, второй котел не будет использовать больше полосы пропускания на машине - это снизит пропускную способность на другом коте, поскольку им придется делиться пропускная способность соединения.
Если ваша пропускная способность сети не насыщена, а ваш tomcat ожидает внешних ресурсов (например, веб-сервисов, баз данных), имеет смысл использовать избыточный процессор и память со вторым экземпляром.
Но тогда есть точка упругости: если один экземпляр EC2 опустится, вам понадобится два ваших кота. Можете ли вы терпеть это или это то, почему вы отправились в облако в первую очередь?
Я подозреваю, что с tomcat вам не понадобится. Основными причинами запуска нескольких потоков является использование нескольких ядер с однопоточными приложениями и предоставление слушателям, когда другие потоки могут быть заблокированы io. – datasage