gpt4 book ai didi

java - 优化 Tomcat/垃圾收集

转载 作者:搜寻专家 更新时间:2023-10-31 20:04:14 25 4
gpt4 key购买 nike

我们的服务器有 128GB 内存和 64 个内核,在 CentOS 6.3 上运行 Tomcat 7.0.30 和 Oracle jdk1.6.0_38。

我们每 60 分钟就会看到一次垃圾收集需要 45 - 60 秒。添加 -XX:-UseConcMarkSweepGC 将页面加载时间增加了大约 10%,但将其减少到大约 3 秒,这是一个可以接受的权衡。

我们的配置:

-Xms30g-Xmx30g-XX:PermSize=8g-XX:MaxPermSize=8g-Xss256k-XX:-UseConcMarkSweepGC

我们将堆设置为 30 GB 以保持 32 位寻址(我读到超过 32 GB 时 64 位寻址会占用更多内存,因此您必须使用大约 48 GB 才能看到改进)。

使用 VisualGC,我可以看到 Eden 空间每 30 到 60 分钟循环一次,但 Survivor 0、Survivor 1、Old Gen 和 Perm Gen 的变化不大。

我们有一个强大的服务器。我们还可以进行哪些其他优化来进一步减少 3 秒 GC 时间?

有什么提高性能或扩展的建议吗?

任何其他有用的输出或配置信息?

最佳答案

这听起来可能违反直觉,但您是否尝试过分配更少的内存?例如。你真的需要 30G 堆吗?如果您可以使用 4G 或更少:垃圾收集可能会更频繁,但当它发生时它会快得多。通常我发现这比分配大量内存更可取,因为清理它需要时间。

即使这对您没有帮助,因为确实需要 30G 的内存,其他人也可能会遇到类似的问题,他们可能会从分配更少的内存中获益。

关于java - 优化 Tomcat/垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865931/

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