2016-04-16 58 views
1

硬件設置是64x 64位CPU,380GB RAM。GC Clojure/Java/JVM內存設置

的Java /雷音設置:

#export JVM_OPTS=-Xmx254g -Xss2g 

運行並行化大Clojure的推理算法我得到的過程

java.lang.OutOfMemoryError: GC overhead limit exceeded 

然而,最大的內存使用量大約是30GB。

我需要更改哪些設置?我不明白爲什麼GC堅持要釋放記憶 - 應該有很多事情要做!

當限制爲10GB內存和10個CPU時,算法不會遇到此問題。

+0

您需要發佈GC日誌。否則,很難說出內存是如何使用的等等。只需基本的日誌記錄就可以了(例如'-verbose:gc -XX:+ PrintGCDetails -Xloggc:gc.log')。 –

+0

好的,會的 - 但可能需要我幾個小時再次遇到問題! – Oxonon

回答

1

我懷疑

#export JVM_OPTS=-Xmx254g -Xss2g 

是一條評論。這意味着默認堆大小爲32 GB(因爲您有128 GB以上)正在使用。嘗試刪除#此外,如果export JVM_OPTS=出現在此行後的任何位置,它將覆蓋此設置。

+0

我應該刪除這個問題嗎?它可能不會幫助任何人 - 我有#PBS指令高於此,並意外鍵入該散列英寸 – Oxonon

+0

@Oxonon這取決於你。知道沒有設置「-Xmx」時會發生什麼會是有用的。 –