2013-05-08 2 views
0

Я отправил работу sbatch в SLURM.SLURM - OutOfMemoryError: превышен верхний предел GC

#!/bin/bash 
#SBATCH --job-name=freset_weighting 
#SBATCH --output=freset.out 
#SBATCH --error=freset.err 
#SBATCH --time=120:00:00 
#SBATCH --mem=32769 
#SBATCH --mail-type=BEGIN 
#SBATCH --mail-type=END 

java -jar ~/FReSET/freset_0.1.jar -XX:-UseGCOverheadLimit -Xmx32g 

Работа останавливается со следующей ошибкой:

Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) 
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 
    at java.util.regex.Matcher.<init>(Matcher.java:207) 
    at java.util.regex.Pattern.matcher(Pattern.java:885) 
    at java.util.regex.Pattern.split(Pattern.java:994) 
    at java.util.regex.Pattern.split(Pattern.java:1056) 

Процесс Java должен был начаться с -XX: -UseGCOverheadLimit аргумент, чтобы избежать этой ошибки.

Приветствия, Markus

ответ

0

С использованием Java

 
Usage: java [-options] -jar jarfile [args...] 
      (to execute a jar file) 

так что вы должны быть с указанием опции "-XX: -UseGCOverheadLimit -Xmx32g" до "-jar myJar.jar"

java -XX:-UseGCOverheadLimit -Xmx32g -jar ~/FReSET/freset_0.1.jar 

Если вы получаете эту ошибку, хотя я буду обеспокоен тем, что делает ваша программа, чтобы сделать сборку мусора сверхурочным. Я бы предложил сделать некоторые профилирования, чтобы выяснить, что вызывает так много временных объектов. У этого вопроса есть некоторые ответы о настройке, GC overhead limit exceeded.