簡體   English   中英

GC(分配失敗)[PSYoungGen]

[英]GC (Allocation Failure) [PSYoungGen]

最近,我們將代碼從java7切換到了java8。 PSYoungGen每10分鍾發生一次GC分配失敗。 我們甚至嘗試將-XX:NewSize和-XX:NewMaxSize切換到大約5GB(總堆大小為10GB)。 但是,即使在gc分配失敗已被打印出來並且PSYoungGen幾乎觸發了大小(5GB)的情況下。 添加了一些日志:

[GC (Allocation Failure) [PSYoungGen: 3145728K->114922K(3670016K)] 3145728K->115026K(5767168K), 0.2511084 secs] [Times: user=0.26 sys=0.14, real=0.25 secs]
[GC (Allocation Failure) [PSYoungGen: 4443141K->125893K(4718592K)] 4443261K->126229K(6815744K), 0.2318927 secs] [Times: user=0.42 sys=0.22, real=0.24 secs]

在一個答案中:與之相關的Java GC(分配失敗)我已經看到這是正常的行為,只是好奇地知道有什么方法可以克服這個問題? 謝謝。

我認為您可能正在設置的NewSize會控制整個新一代(由伊甸園幸存者空間組成)的大小,因此也許您的伊甸園的大小仍然不足以直接分配給新的大型對象(例如大字節[]。

我要問的是,即使您將新設置為5Gb ,我認為Oracle的文檔建議SurvivorRatio默認值為8意味着大約有1.25Gb的幸存者空間,剩下3.75 Gb eden。 您是否可以分配大於或接近此大小的對象?

關於沒有這樣的日志,在您鏈接到OP中的答案中,已接受的答案將做出評論

“較早的JVM不會打印GC的原因,因為GC周期較小。

所以也許這一直在發生,而您直到現在才知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM