Я думал о том, как управлять оперативной памятью между тремя разными веб-приложениями Java. У меня в голове размытые концепции. Deploy all the web apps in the same tomcat7
экземпляр или иметь 3 different instances
Tomcat 7, в котором я буду размещать каждое веб-приложение.
Но главный вопрос в том, как эффективно делиться 10GB
коробки (12 ГБ ОЗУ) среди них? скажем, у меня есть 3 ГБ для mysql, поэтому приложение A takes 4GB
, приложение B 2GB
и C 1GB
.
каковы известные и передовые методы достижения этого?
Если вы еще этого не сделали, вам следует профилировать свои приложения с помощью нагрузочного тестирования, профилирования кода, ведения журнала gc и т. Д., Чтобы увидеть фактический объем памяти и заблаговременно устранить любые утечки памяти.
Сказав это, я бы выбрал три отдельных экземпляра Tomcat, каждый из которых запускает собственное приложение. Таким образом вы можете установить распределение памяти (Xms
, Xmx
и т. д.) на процесс / экземпляр Tomcat. Я не думаю, что вы можете установить их для каждого приложения.
Еще одним преимуществом запуска отдельных экземпляров Tomcat для каждого приложения будет возможность перезапускать каждый экземпляр Tomcat отдельно (при необходимости), не влияя на доступность других приложений.