java - 如何管理tomcat中的webapps足迹?

标签 java tomcat memory-management out-of-memory

我正在寻找一种运行时解决方案来查找网络应用程序的内存使用情况。 我提供了一个包含 tomcat 的框架,不同的客户端在该框架上部署多个 Web 应用程序。有时其中一个会消耗大量内存,从而破坏整个过程。 我想要一个管理器网络应用程序(如 tomcat 的管理器)来检测这一点,并可能取消部署\重新部署有问题的网络应用程序。 另一种解决方案(我认为不可能)是将堆的一部分分别分配给每个网络应用程序。

要求客户更改现有的网络应用程序是可能的,但我宁愿不这样做。

有什么想法吗?

最佳答案

您无法拦截每个Web应用程序中的分配,并且没有来自垃圾收集器的回调,因此您无法知道每个Web应用程序使用了多少内存。我认为您最好部署多个 Tomcat 实例,这样一个“流氓”Web 应用程序就不会杀死所有其他 Web 应用程序(每个 Web 应用程序最多一个 Tomcat,但您也可以创建组来限制实例数量,具体取决于严重程度)您的不同应用程序)。

关于java - 如何管理tomcat中的webapps足迹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262683/

相关文章:

java - 测试中未抛出 NullPointerExceptions

java - 无法在 BI PUBLISHER 中加载架构信息

tomcat - 为什么nginx不做简单的负载均衡。 Tomcat 实例。错误请求 400

c++ - delete[ ] 会深度删除 C++ 中的结构吗?

java - 将变量从 AsyncTask 传递到 doInBackground Android

java - 如何使用 mockito 或 powermock 模拟局部变量

java - 如果用户尝试获取有错误的脚本,jshell 会静默结束

tomcat - 将本地 CA 签名的证书导入 tomcat7 keystore.ks 时是否需要第 5 步?

c# - 为什么 "decimal"数据类型不可 blittable?

android - 如何降低我的应用程序的内存使用量?