tomcat JVM保留对象中的ParallelWebAppClassLoader的多个实例的行为



我正在努力识别tomcat 8.5.38服务器(CentOS 7.6,OpenJDK 1.8,4 CPU)中重复出现的信息问题。

此问题是此应用的新问题。(编辑:在Tomcat从8.5.35升级到8.5.38之后开始的问题。我通过添加" -xx: heapDumponOutofMemoryError" JVM设置来保存一个内存堆转储。在堆转储中,我看到有2个平行WebappClassLoader的实例。该应用程序使用大型哈希图(约200 MB)作为缓存。每个类加载程序都对此哈希姆普有单独的引用。我试图找到为什么此JVM中有2个ParallelWebappClassLoader实例?Server.xml未指定使用ParallelWebappClassLoader的使用。

也可以期望ParallealWebappClassLoader维护hashmap的副本?

如果是同一对象的2个副本,则如何使用ParallelWebappClassLoader?

如何优化此重复空间?

问题是因为Tomcat从8.5.35升级到8.5.35。升级后,JVM具有两个类加载程序,因此占据了两倍的内存。可以通过将RAM或将Tomcat版本滚动到8.5.35。

来快速修复。

如果有一个设置可以控制类加载器的数量,请发布答案。我会说。

最新更新