【发布时间】:2015-10-12 11:43:46
【问题描述】:
今天发现我的应用程序无法访问,然后登录我的服务器,发现应用程序的线程正常,但是CPU负载太高了。
然后,我想使用jstack命令。但是它指出了need -F option。现在我发现GC日志停留在[GC (Allocation Failure) 2015-10-10T10:18:10.564+0800: 71147.518: [ParNew:,并且没有其他日志。
然后,我使用jstack -F命令。奇怪的事情发生了。CPU正常了,我的服务器也正常了,GC日志也正常了,第一行是[GC (Allocation Failure) 2015-10-10T10:17:50.757+0800: 53501.137: [ParNew: 210022K->245K(235968K), 369.6907808 secs] 400188K->1
90410K(1022400K), 369.6909604 secs] [Times: user=3475.15 sys=11.69, real=369.63 secs]。而jstack的结果是runnable thread都是GC线程,比如"Gang worker#4 (Parallel GC Threads)" os_prio=0 tid=0x00007f5f10021800 nid=0x6477 runnable
这是我的 JAVA_OPTIONS
-服务器 -Dfile.encoding=UTF-8 \ -Xms2g -Xmx2g -Xmn512m \ -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 \ -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 \ -XX:+PrintGCDateStamps -verbose:gc -XX:+PrintGCDetails -Xloggc:/data/logs/gc-skynetlog_web.log \ -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M \ -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/dump_skynetlog_web.hprof
【问题讨论】:
-
jstack不太可能修复任何问题。更有可能是您的 JVM 花费了很长时间来执行完整的 GC,并且在您运行jstack时完成了。只是巧合。 -
s/ling/long/p .... (ed)
-
这不是您在stackoverflow.com/q/33049375/1362755 中已经提出的问题吗?
-
@StephenC,不是巧合,每次。寻求帮助。
-
@the8472,sorry,没有人给出正确答案,顺便问下一个问题。
标签: java garbage-collection jstack