帮助实现奇怪的Java GC行为

Han*_*Gay 1 java garbage-collection

我有一个在Apache背后的JBoss上运行的Java Web应用程序(通过mod_jk),我看到一些非常奇怪的GC行为.我已经附上了这个问题的图表.之前有没有人见过类似的GC行为?它是Java 6,在服务器级机器上运行符合人机工程学的默认GC调优.谢谢.

注意:上图是指向全尺寸版本的链接.该图是使用GCViewer生成的.

Cur*_*Dog 5

问题似乎是即使在完全垃圾收集之后系统也无法恢复足够的内存.这也具有将物品推广到不属于那里的终身和幸存者空间的负面影响.

随着时间的推移,老一代的规模应该稳定下来,大多数对象(或者至少应该是)非常短暂.如果您发现老一代不断增长,那么可能会在某处出现资源泄漏.从你的图表看来,似乎有些分配是将系统倾斜到边缘并进入gc死亡螺旋.

试着了解正在创建什么对象,更重要的是,他们有多长时间闲逛.这将让您最好地了解您应该在哪里寻找.