簡體   English   中英

分析gc日志

[英]Analyzing gc logs

我正在使用-XX:+PrintGCApplicationStoppedTime-XX:+PrintGCApplicationConcurrentTime選項打開gc日志記錄。

但是發現只有在4 0r 5次打印PrintGCApplicationStoppedTime我的gc日志的實際詳細信息才通過-XX:+PrintGCDetails命令打印!

根據定義, PrintGCApplicationStoppedTime為每個gc打印應用程序停止時間。

但是我不清楚為什么它會打印如下所示的示例。

是因為

PrintGCApplicationStoppedTime僅在每個安全點到達后打印

(要么)

該日志文件將由其他gc線程記錄。 我將並發掃描用於完整GC,並為年輕一代使用ParNew

我的應用程序是Web應用程序。

O / p模式-我變得像這樣:

Application time: 0.3847031 seconds
Total time for which application threads were stopped: 0.3135419 seconds
Application time: 0.1520723 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
1.229: [GC 1.229: [ParNew: 256000K->51200K(256000K), 0.1509756 secs] 426536K->334728K(997376K), 0.1510198 secs] [Times: user=0.85 sys=0.07, real=0.15 secs]

不幸的是, PrintGCApplicationStoppedTime是此JVM選項的誤導性名稱。

實際上,它會打印在安全點內花費的時間。 安全點暫停的發生不僅是由於垃圾收集,還有其他許多原因:

即使沒有請求的VM操作,安全點也可能會定期發生,以便放空空閑的監視器,執行某些JIT清理等等。 請參閱-XX:GuaranteedSafepointInterval VM選項(默認為1000毫秒)。

使用-XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1可以轉儲有關安全點的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM