我有两个在tomcat上运行在两个不同服务器上的Web应用程序实例。当我通过多播添加会话复制配置时,它会在接下来的五分钟内给出permgen错误(我只有两个活动会话)。但是在那五分钟内,一切看起来都很正常:一台服务器中的会话成功复制到另一台服务器。当我没有多播设置时,我不会看到permgen问题。
任何想法为什么多播只消耗两个会话的所有可用内存?
答案 0 :(得分:0)
Permgen用于存储有关类的元数据。它不受这些类的实例数量的影响。会话数(即实例)可能无关紧要。这可能是使用(并且可能动态生成)类来支持会话复制的简单行为,这会耗尽perm gen。
通过明确设置MaxPermSize property来开始增加perm gen的大小。
考虑转移到jdk 8,这会改变管理元数据的方式。