当我在具有 4 x 1.6GHZ 内核和 7G RAM 的 Window Azure 上运行我的 Java 应用程序时Ubuntu 12.04 VM
,几分钟后出现以下内存不足错误。
java.lang.OutOfMemoryError:超出 GC 开销限制
我的交换大小为 15G 字节,最大堆大小设置为 2G。我正在使用 Oracle Java 1.6。增加最大堆大小只会延迟内存不足错误。似乎 JVM 没有进行垃圾收集。
但是,当我在本地 Windows 8 PC (core i7) 上运行上述 Java 应用程序时,使用相同的 JVM 参数,它运行良好。堆大小永远不会超过 1G。
Windows Azure linux VM 上是否有任何用于运行 Java 应用程序的额外设置?