Java - PS OldGen全,PS Survivor Space空,PS Eden Space填充和GC'ing

时间:2016-08-18 23:22:12

标签: java tomcat garbage-collection bitbucket-server

我在Tomcat 8.0.24上运行Atlassian Bitbucket,在Ubuntu 14.04.5 LTS上运行Java 1.8.0 31-b13(64位),内核3.13.0-88-generic。 VM具有16GB内存和4个虚拟CPU

我修改的唯一java参数是堆参数,目前为-Xms3072m -Xmx4096m。我没有改变比率或其他堆参数

我正在使用probe来查看内部。重新启动后,GC在PS Eden Space和PS Survivor Space上按预期工作,PS Old Gen逐渐填充到2.67GBytes并发生完整的GC。

然而,经过几天的预期行为后,PS Old Gen填充但没有发生GC,然后PS Survivor SPace仍为空,只有PS Eden Space填充和GC'。在观察到这种行为之后的某个时间,响应时间变慢,并最终因内存不足(堆)错误而崩溃。

我一直在逐渐增加堆空间,但我敏锐地意识到它现在已经很大了,并且完整的GC会导致前端在发生停机时报告几秒钟。

我的问题是:

  1. 我应该继续增加堆,希望这能解决问题吗?
  2. 是否有其他参数(例如各种比率)可能有助于解决此问题?
  3. 我是否应该冒死亡的风险,并建议我们将Bitbucket作为一个缸子扔掉? : - )

1 个答案:

答案 0 :(得分:0)

我建议您与support.atlassian.com上的支持小组联系,他们可以协助调整您的实例。

增加堆大小可能会加剧问题而不是解决它,因此我们最好调查它为什么会发生。