gpt4 book ai didi

java - 如何计算 GC 工作所需的 oldGen 的大小?

转载 作者:行者123 更新时间:2023-11-29 03:36:16 27 4
gpt4 key购买 nike

我有一个消耗 10G 堆内存(表示内存中的数据结构)的 java web (tomcat) 应用程序。但是当我设置例如Xmx 到 20G。

当我设置堆内存时,例如到 11G 我的应用程序无法加载所有数据 - 它进入连续的完整 gc。假设垃圾收集器也需要内存来使 full gc 高效。它正确吗?我应该为 gc 的有效工作添加多少内存?谢谢。

最佳答案

找出最佳 OldGen 大小:

  1. 启用GC日志记录 -XX:+PrintTenuringDistribution -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log -XX:+HeapDumpOnOutOfMemoryError -Xloggc: gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -showversion

  2. 计算 Live Data Size = FullGC 后旧 OldGen 的占用率(有关更多详细信息,请参阅 Advanced JVM Tuning)。顺便提一句。尝试获得平均值。通过观察几个 FullGC 周期后的 OldGen 占用情况。

  3. 最佳 OldGenSize == 2x3x 实时数据大小

关于java - 如何计算 GC 工作所需的 oldGen 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365491/

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