java GC实时性显著延长
应用程序正在使用-XX:+UseParallelGC。 有一个GC,与用户+系统相比,实时花费的时间要长得多(~1.05秒): [时间:用户=0.04系统=0.01,real=1.05秒]
上一次GC的PSYoungGen正在清理相同数量的内存,时间也少得多。我没有启用任何标志来检查是否是jit造成的。这台正在运行的机器上存在负载,但这是由执行GC的同一jvm进程引起的
什么原因会导致这样的事情发生?我将来能做些什么来弄清楚发生了什么(如果再次发生)
[GC
Desired survivor size 720864 bytes, new threshold 1 (max 15)
[PSYoungGen: 18864K->454K(21121K)] 38016K->17722K(64833K), 0.0224350 secs] [Times: user=0.04 sys=0.01, real=1.05 secs]
# 1 楼答案
为了在将来更好地诊断这个问题,请使用
-XX:+PrintSafepointStatistics –XX:PrintSafepointStatisticsCount=1 -XX:+PrintGCDetails -XX:+PrintGCCause
运行更多有用的日志。您使用的JVM版本也可能与此相关除此之外,您还必须监视系统统计数据,主要是分页和CPU利用率,以查看其他进程或磁盘IO是否会耗尽JVM