gpt4 book ai didi

Java - Full GC(垃圾收集器)在短时间内发生大量,导致性能下降

转载 作者:行者123 更新时间:2023-12-02 08:42:01 27 4
gpt4 key购买 nike

我在我们的产品环境中看到一些异常行为,导致运行 Tomcat 的服务器上的线程数很高。堆大小 10,092,544K 在新生代和永久代之间划分为 2,752,512K + 7,340,032K = 10,092,544K。

我很困惑为什么当堆上有足够的内存可用时 GC 会多次运行(新代和旧代)(完整 GC [PSYoungGen: 0K->0K(2752512K)] [ParOldGen: 2748534K-> 2748529K(7340032K)])

正如你所看到的,年轻一代的 0K->0K 和老一代的 0K->0K 和 .27G -> .27G 意味着几乎没有任何对象被GC,并且有这么多可用内存。 (堆大小为10G)。

由于 Full GC 在短时间内运行多次,因此会导致性能下降,因此应用程序无法处理传入的用户请求,从而导致服务器上的线程过多,最终我们必须重新启动服务器才能摆脱这种情况。

您能解释一下这里发生了什么吗?

这是 gc.log 上的输出。

<小时/>

。.

更多......。.

Jul 18 14:52:38 fwprodcontent03 gc.log: 3172.122: [GC [PSYoungGen: 0K->0K(2752512K)] 2750855K->2750855K(10092544K), 0.0515920 secs] [Times: user=0.32 sys=0.01, real=0.06 secs]

Jul 18 14:52:42 fwprodcontent03 gc.log: 3172.174: [Full GC [PSYoungGen: 0K->0K(2752512K)] [ParOldGen: 2750855K->2749937K(7340032K)] 2750855K->2749937K(10092544K) [PSPermGen: 262143K->262115K(262144K)], 4.1571260 secs] [Times: user=44.29 sys=0.06, real=4.15 secs]

Jul 18 14:52:42 fwprodcontent03 gc.log: 3176.361: [GC [PSYoungGen: 9071K->1280K(2752512K)] 2759008K->2751217K(10092544K), 0.0989600 secs] [Times: user=0.64 sys=0.01, real=0.10 secs]

Jul 18 14:52:46 fwprodcontent03 gc.log: 3176.461: [Full GC [PSYoungGen: 1280K->0K(2752512K)] [ParOldGen: 2749937K->2748847K(7340032K)] 2751217K->2748847K(10092544K) [PSPermGen: 262143K->262121K(262144K)], 3.1331910 secs] [Tim es: user=31.25 sys=0.01, real=3.14 secs]

Jul 18 14:52:46 fwprodcontent03 gc.log: 3179.616: [GC [PSYoungGen: 2161K->288K(2752512K)] 2751008K->2749135K(10092544K), 0.0688890 secs] [Times: user=0.42 sys=0.02, real=0.07 secs]

Jul 18 14:52:49 fwprodcontent03 gc.log: 3179.686: [Full GC [PSYoungGen: 288K->0K(2752512K)] [ParOldGen: 2748847K->2748930K(7340032K)] 2749135K->2748930K(10092544K) [PSPermGen: 262143K->262143K(262144K)], 3.2369940 secs] [Time s: user=32.23 sys=0.02, real=3.23 secs]

Jul 18 14:52:49 fwprodcontent03 gc.log: 3182.923: [GC [PSYoungGen: 0K->0K(2752512K)] 2748930K->2748930K(10092544K), 0.0607190 secs] [Times: user=0.39 sys=0.01, real=0.06 secs]

Jul 18 14:52:57 fwprodcontent03 gc.log: 3182.984: [Full GC [PSYoungGen: 0K->0K(2752512K)] [ParOldGen: 2748930K->2748528K(7340032K)] 2748930K->2748528K(10092544K) [PSPermGen: 262143K->262141K(262144K)], 8.5377730 secs] [Times: user=98.30 sys=0.57, real=8.54 secs]

Jul 18 14:52:58 fwprodcontent03 gc.log: 3191.533: [GC [PSYoungGen: 202K->128K(2752512K)] 2748731K->2748656K(10092544K), 0.1088430 secs] [Times: user=0.67 sys=0.00, real=0.11 secs]

Jul 18 14:53:02 fwprodcontent03 gc.log: 3191.642: [Full GC [PSYoungGen: 128K->0K(2752512K)] [ParOldGen: 2748528K->2748534K(7340032K)] 2748656K->2748534K(10092544K) [PSPermGen: 262143K->262143K(262144K)], 3.1761780 secs] [Time s: user=31.11 sys=0.02, real=3.18 secs]

Jul 18 14:53:02 fwprodcontent03 gc.log: 3194.820: [GC [PSYoungGen: 0K->0K(2752512K)] 2748534K->2748534K(10092544K), 0.0589010 secs] [Times: user=0.38 sys=0.01, real=0.06 secs]

Jul 18 14:53:05 fwprodcontent03 gc.log: 3194.879: [Full GC [PSYoungGen: 0K->0K(2752512K)] [ParOldGen: 2748534K->2748529K(7340032K)] 2748534K->2748529K(10092544K) [PSPermGen: 262143K->262143K(262144K)], 3.0554520 secs] [Times: user=30.72 sys=0.03, real=3.05 secs] . . .more.....


提前致谢。

最佳答案

你看过你的GC统计数据吗?

[Full GC [PSYoungGen: 0K->0K(2752512K)] [ParOldGen: 2748534K->2748529K(7340032K)] 2748534K->2748529K(10092544K) [PSPermGen: 262143K->262143K(262144K)], 3.0554520 secs]

重要的部分是[PSPermGen: 262143K->262143K(262144K)]。您的PermGenSpace 已耗尽,因此完整GC 已完成。因此,进一步增加 PermGenSpace 来解决这个问题(也许通过减少一点堆空间)。

另外,不要在不重新启动 Tomcat 的情况下经常在生产系统上进行部署,因为这会很快耗尽您的 PermGenSpace

关于Java - Full GC(垃圾收集器)在短时间内发生大量,导致性能下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17716592/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com