full gc太過頻繁該如何處理


監控工具:jvisualVM、VisaulVM、jprofiler

JVM優化書籍:《Java性能優化權威指南》、《深入理解java虛擬機》

1.年輕代空間不足

2.per Gen(永久代)空間滿

3.CMS GC時出現promotion failed和concurrent mode failure

4.統計得到的Minor GC晉升到舊生代的平均大小大於舊生代的剩余空間等
 

結論:

Full GC本身是好的,可以清除老年代的垃圾,但是如果Full GC發生的頻率高了,就會影響性能,同時意味着系統內存分配機制出現問題。
因為Full GC本身執行時間較長(甚至超過1秒),而且除非采用G1 GC,否則其它的GC方式都會或多或少掛起所有線程執行(Stop-the-world),如果Full GC頻繁發生,系統被掛起的次數就會增加,響應時間就會變慢。
同時,Full GC頻繁發生,意味着你的內存分配機制存在問題,也許是內存泄露,有大量內存垃圾不斷在老年代產生;也許是你的大對象(緩存)過多;也有可能是你的參數設置不好,minor GC清理不掉內存,導致每次minor GC都會觸發Full GC;還有可能是你的老年代大小參數設置錯誤,老年代過小等等原因


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM