在部署在同一个tomcat 7容器或不同的tomcat 7实例中的应用程序之间,消耗RAM的理想策略是什么?

我一直在考虑如何pipe理不同的3个Java Web应用程序之间的RAM。 我头脑中已经模糊了概念。 Deploy all the web apps in the same tomcat7实例中Deploy all the web apps in the same tomcat7或者有3 different instances的tomcat 7 3 different instances ,在这些3 different instances中,我将分别使用一个Web应用程序。

但是最大的问题是如何有效地共享10GB的盒子(12GB RAM)呢? 假设我有3 GB的MySQL,所以应用程序A takes 4GB ,应用程序B 2GBC 1GB

什么是已知和最佳做法来实现这一目标?

如果你还没有,你应该通过负载testing,代码分析,gc日志等来分析你的应用程序,看看实际的内存占用情况,并提前解决任何内存泄漏。

话虽如此,我会去为Tomcat的三个单独的实例,每个运行自己的应用程序。 这样你可以为每个Tomcat进程/实例设置内存分配( XmsXmx等)。 我不认为你可以设置每个应用程序。

为每个应用程序运行单独的Tomcat实例的另一个好处是能够分别重启每个Tomcat实例(如果必须的话),而不影响其他应用程序的可用性。