我們有一個在Ubuntu Server 12.04和java上運行的應用程序。消耗100%CPU的JVM
Java的版本回報:
Java版本 「1.7.0_40」
的Java(TM)SE運行時環境(建立1.7.0_40-b43)中
的HotSpot的Java(TM) 64位服務器VM(建設24.0 - B56,混合模式
我們有相同的技術,但沒有問題的其他應用程序。
個服務器信息: RAM:2G 操作系統:Ubuntu服務器12.04 鈮CPU:2
程序語言階。
運行一段時間後,JVM似乎睡着了。一個CPU繼續以100%旋轉。
JVM選項:
-Xms1g -Xmx1g -XX:+ HeapDumpOnOutOfMemoryError -XX:+ UseParNewGC -XX:+ UseConcMarkSweepGC -XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps -XX:+ PrintTenuringDistribution -XX: -DisableExplicitGC -XX:CMSFullGCsBeforeCompaction = 1 -XX:+ CMSClassUnloadingEnabled -XX:+ CMSIncrementalMode -XX:MaxGCPauseMillis = 1500 -XX:GCTimeRatio = 9 -XX:CMSInitiatingOccupancyFraction = 50 -XX:-UseGCOverheadLimit -XX:MaxHeapFreeRatio = 60
使用jstat -gcutil [PID],我已經看到FGC快速增長。
你對這個問題有想法嗎?
感謝
** 100%CPU使用率**對於重度GC活動**爲99.9%符號** ...另外,2內核2G內存?似乎不符合標準...此外,請務必檢查堆轉儲以查看堆中的內容,以便能夠糾正這種情況 – ppeterka
以及任何人都可以在此幫助您?沒有可以指出問題的信息。 [應該閱讀此。](http://stackoverflow.com/help/on-topic) –
JIT comilation迷上了,或GC正在工作。沒有什麼不對,它不會持續很長時間。 –