2013-05-08 79 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參數來避免這個錯誤。

乾杯, 馬庫斯

回答

0

從Java使用

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

所以你應該指定選項 「-XX:-UseGCOverheadLimit -Xmx32g」 前的 「罐子myJar.jar」

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

如果您收到此錯誤,雖然我會關心你的程序是做什麼的,使垃圾收集加班這樣的。我會建議做一些分析,找出是什麼造成這麼多的臨時對象。這個問題有關於微調,GC overhead limit exceeded一些答案。

相關問題