这是一个新手问题,但我想我必须问:是否可以在单个 tomcat 实例上托管多个 Web 应用程序,以便每个 Web 应用程序都有单独的内存(-Xms、-Xmx 等)。我们在单个 tomcat 上托管了多个应用程序,并且一个应用程序有时会收到大量导致 OutOfMemory 问题的信息。
显而易见的解决方案是单独托管它们,但我正在寻找任何其他可用的选项。
最佳答案
没有。这实际上是 JVM 的限制,与 Tomcat 无关。不可能像这样“分割”JVM。
我与 Apache 基础设施(运行 apache.org 的团队)一起工作。在那里,我们通常使用单个 Apache HTTPd 服务器作为所有 Tomcat 安装的前端。它使我们能够:
- 关闭各个 Tomcat 服务器以进行应用或服务器升级
- 单独控制每个的内存设置
- 给予某些进程更高/更低的优先级
- 使用简单的 linux/unix 命令识别“重型”应用(例如 top)
- 设置 Nagios 进行更高级的监控
非常方便。
关于Tomcat:单个 Tomcat,多个具有独立内存需求的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9334079/