查找JVM崩溃的原因

时间:2016-03-14 19:06:54

标签: java multithreading out-of-memory

近两周,我们面向公众的机器的jvm几乎每天都会崩溃,或者有时因为内存不足错误而崩溃 当我查看hs_err_pid24100.log时,我看到了这条消息

没有足够的内存让Java Runtime Environment继续....

我还看到了当前线程" C2 CompilerThread0"但我无法解释它是如何产生的。

我提供完整的转储文件作为链接。是否有任何规定的指南,以确定在哪里 开始考虑找出这个问题的原因或如何解决它 http://tinyurl.com/jr7bhee

1 个答案:

答案 0 :(得分:1)

你有一台12 GB的机器,但是你做了更大的JVM

-XX:PermSize=4096M ... -Xms4096m -Xmx10065m

perm gen和堆单独为14 GB,为JVM和OS添加另外1-2 GB,而其他程序实际上使用26-28 GB。

所以内存不足。

Memory: 4k page, physical 12582388k(1970656k free), swap 16776692k(7036k free)

我建议

  • 为正在运行的应用程序安装至少32 GB的内存或
  • 使perm gen更小,比如1 GB,最大堆4 - 8 GB,并退出机器上的所有其他程序,它可能适合你拥有的12 Gb。