【问题标题】:Uderstanding GC logs and delays in the web application了解 Web 应用程序中的 GC 日志和延迟
【发布时间】:2015-03-16 11:52:31
【问题描述】:

这是一个 webapp (JBoss 7.1) 的 GC 日志。如何解读这些信息? Webapp 有时会出现明显的延迟,我试图找出原因。

362.261: [GC [PSYoungGen: 12772K->677K(13056K)] 47780K->35813K(57600K), 0.0214030 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]
375.011: [GC [PSYoungGen: 12965K->537K(13056K)] 48101K->36056K(57600K), 0.0410890 secs] [Times: user=0.01 sys=0.00, real=0.04 secs]
377.211: [GC [PSYoungGen: 12823K->764K(12800K)] 48342K->36391K(57344K), 0.0774440 secs] [Times: user=0.01 sys=0.00, real=0.08 secs]
400.197: [GC [PSYoungGen: 12796K->777K(13056K)] 48423K->36464K(57600K), 0.0204340 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]
...
4222.821: [Full GC [PSYoungGen: 4096K->0K(8704K)] [ParOldGen: 55161K->40145K(55552K)] 59257K->40145K(64256K) [PSPermGen: 52107K->52107K(87552K)], 1.0148930 secs] [Times: user=0.79 sys=0.01, real=1.02 secs]

【问题讨论】:

    标签: java web-applications garbage-collection


    【解决方案1】:

    [Times: user=0.79 sys=0.01, real=1.02 secs] - 是 Stop-the-World 暂停的摘要。在 1.02 秒的挂钟时间内,所有应用程序线程都被暂停(因此所有正在处理的 HTTP 请求都被延迟)。

    “Full GC”是指同时收集年轻和旧空间时的主要 GC。只是“GC”是Minor GC,只收集年轻空间中的垃圾(因此StW停顿更短)。

    您可以在 HotSpot JVM here 中找到有关 GC 算法的更多信息。如果您对 StW 暂停期间发生的事情感到好奇,请查看 this 文章。

    【讨论】:

    • 这是否意味着在 webapp 中增加内部计算和/或更多内容处理将意味着增长 StW 时间和频率的增加?此外,例如应用程序有 512Mb 内存限制,那么这是否意味着 StW 暂停会更大,并且通常与具有 2Gb 内存限制的应用程序相比?
    • 我们可以假设 GC 不会是 Web 应用程序中明显延迟的原因吗?
    • @Andy 引人注目是什么意思?我看到 Full GC 需要 1 秒。如果延迟为 10 秒,则 GC 不是原因。 512 MB 对比2 Gb - 数学不是那么简单。一般来说,更多的内存 - > 更少的频率,但 StW。但这过于简单化了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2013-05-05
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多