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

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

我一直在思考如何在 3 个不同的 java webapp 之间管理 RAM。我脑子里的概念有些模糊。Deploy all the web apps in the same tomcat7例如,3 different instances我将在 tomcat 7 中分别部署一个 web app。

但最大的问题是如何10GB在它们之间有效地共享盒子(12GB RAM)?假设我有 3 GB 用于 mysql,所以 app A takes 4GB、appB 2GBC 1GB

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

答案1

如果还没有,您应该通过负载测试、代码分析、gc 日志记录等方式对您的应用程序进行分析,以查看实际的内存占用情况,并提前解决任何内存泄漏。

话虽如此,我还是会选择三个独立的 Tomcat 实例,每个实例都运行自己的应用程序。这样,您可以为每个 Tomcat 进程/实例设置内存分配(XmsXmx等)。我认为您不能为每个应用程序设置这些。

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

相关内容