硬件设置为 64x 64 位 CPU、380GB RAM。
Java/Lein 设置为:
#export JVM_OPTS=-Xmx254g -Xss2g
运行一个大型并行 Clojure 推理算法,我得到了
java.lang.OutOfMemoryError: GC overhead limit exceeded
然而,该进程的最大内存使用量约为 30GB。
我需要更改哪些设置?我不明白为什么 GC 坚持尝试释放内存 - 应该有足够的空间!
当限制为10GB内存和10个CPU时,算法不会遇到这个问题。
最佳答案
我怀疑
#export JVM_OPTS=-Xmx254g -Xss2g
是一条评论。这意味着正在使用您的默认堆大小 32 GB(因为您有 128+ GB)。尝试删除 #
此外,如果 export JVM_OPTS=
出现在该行之后的任何位置,它将覆盖此设置。
关于java - GC Clojure/Java/JVM 内存设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665541/