2016-04-16 5 views
1

Аппаратная настройка - 64x 64-битные процессоры, оперативная память 380 ГБ.Настройки памяти GC Clojure/Java/JVM

настройки Java/LEIN является:

#export JVM_OPTS=-Xmx254g -Xss2g 

Запуска большого запараллеленного алгоритма логического вывода Clojure я

java.lang.OutOfMemoryError: GC overhead limit exceeded 

Однако максимальное использование памяти в процессе составляет около 30GB.

Какие настройки необходимо изменить? Я не понимаю, почему GC настаивает на попытке освободить память - должно быть много, чтобы обойти!

При ограничении памяти 10 ГБ и 10 ЦП алгоритм не сталкивается с этой проблемой.

+0

Вам необходимо разместить свой журнал GC. В противном случае трудно определить, как использовалась память и т. Д. Простое базовое ведение журнала было бы прекрасным (например, «-verbose: gc -XX: + PrintGCDetails -Xloggc: gc.log'). –

+0

Хорошо, сделаю - но мне может потребоваться пару часов, чтобы снова вступить в проблему! – Oxonon

ответ

1

Подозреваю

#export JVM_OPTS=-Xmx254g -Xss2g 

является комментарием. Это означает, что используется размер кучи по умолчанию 32 ГБ (как у вас есть 128 ГБ). Попробуйте удалить # Кроме того, если export JVM_OPTS= появится где-нибудь после этой строки, он переопределит этот параметр.

+0

Должен ли я удалить вопрос? Скорее всего, это никому не поможет - у меня были директивы #PBS над этим и случайно набрали этот хэш. – Oxonon

+0

@Oxonon это зависит от вас. может быть полезно знать, что происходит, когда не задано '-Xmx'. –

Смежные вопросы