我一直在思考如何在 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 2GB
和C 1GB
。
实现这一目标的已知最佳做法是什么?
答案1
如果还没有,您应该通过负载测试、代码分析、gc 日志记录等方式对您的应用程序进行分析,以查看实际的内存占用情况,并提前解决任何内存泄漏。
话虽如此,我还是会选择三个独立的 Tomcat 实例,每个实例都运行自己的应用程序。这样,您可以为每个 Tomcat 进程/实例设置内存分配(Xms
、Xmx
等)。我认为您不能为每个应用程序设置这些。
为每个应用程序运行单独的 Tomcat 实例的另一个优点是能够单独重新启动每个 Tomcat 实例(如果必须的话),而不会影响其他应用程序的可用性。