我们有一个在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正在工作。没有什么不对,它不会持续很长时间。 –