我在運行應用程序的JVM遇到問題,它的堆內存看起來像梳子。它不斷從1.5 GB跳到3 GB,並逐漸惡化到更高的值。我使用G1 GC算法,但不知道如何配置它。有誰知道在Java中配置GC的好指南嗎?
我無法訪問正在運行的應用程序的代碼,不用說,它是一個相當大的應用程序。
因此,底線,有誰知道一個很好的指導配置在Java Java GC?
我在運行應用程序的JVM遇到問題,它的堆內存看起來像梳子。它不斷從1.5 GB跳到3 GB,並逐漸惡化到更高的值。我使用G1 GC算法,但不知道如何配置它。有誰知道在Java中配置GC的好指南嗎?
我無法訪問正在運行的應用程序的代碼,不用說,它是一個相當大的應用程序。
因此,底線,有誰知道一個很好的指導配置在Java Java GC?
這是來自Sun Tuning Garbage Collection with the 5.0 Java Virtual Machine ...哎呀甲骨文;-)
調整JVM是一種藝術與科學的結合,每個人都沒有答案。您所看到的情況聽起來像默認的GC正在做一個「現在標記,稍後掃描」,這可能導致掃描期間暫停。選項一組,你可以嘗試:
JAVA_OPTS="-server -XX:-UseParallelGC -XX:-UseConcMarkSweepGC"
,選項組合基本上運行在不斷標記和清除的GC背景另一個線程(孔2)。你付出的代價是CPU的使用更多一些,但在現代CPU中,大多數人幾乎不會注意到這一點。
這裏是所有選項:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
你真的需要通過谷歌閱讀上的Java性能優化「的許多文章,你可以發現,你需要配置您的應用程序(詳細GC)找出什麼它正在做的是將正確的params組合到Java中。與其他任何事情一樣,只是盲目拋出選項而不知道自己做了什麼會導致更糟糕的表現,而不是更好。
目前的HotSpot虛擬機的最先進的最新資源GC是以下兩個:
Java Performance - 包含一個完整的章節專門爲GC調整
Java的一個2012 Advanced JVM Tuning - 大部分談話都致力於GC調優。
Java上的版本控制有點不清楚。我正在運行java版本「1.6.0_21」。該指南是5歲,最新修訂是在2005年。它仍然適用? – evilpenguin 2010-12-26 23:37:06