我想使用最新的G1垃圾收集器,但是我在使用它时遇到了内存分配错误的情况。我相信这是因为它正在将内存释放回操作系统,然后操作系统不允许JVM在请求时将其取回,因为CMS收集器不会发生这种情况。我正在运行的特定服务器在CMS收集器上一直运行良好(除了一些不太理想的GC暂停),只要我将其移动到G1,它在运行大约6个小时后就会遇到这些分配错误,并且JVM存在。
目前还不清楚是否有可能防止G1收集器发生这种情况,但我希望社区中的某个人能给出答案。
谢谢!
发布于 2016-09-09 05:17:36
-XX:MaxHeapFreeRatio=100应该阻止它缩小堆的大小。
也就是说,如果这真的修复了jvm崩溃,那将是一个更深层次的问题。要么机器上有足够的内存来处理来自应用程序的所有分配请求,要么没有,如果你让JVM保持贪婪,那么其他的东西将会受到影响。
https://stackoverflow.com/questions/39354522
复制相似问题