【发布时间】:2013-09-22 10:23:05
【问题描述】:
我在 Linux 集群上运行 Java 应用程序,并使用 SLURM 作为资源管理器。要运行我的应用程序,我必须为 SLURM 指定我需要的内存量。 SLURM 将在具有指定内存量的虚拟机中运行我的应用程序。为了告诉我的 java 应用程序可以使用多少内存,我使用了“-Xmx##g”参数。我选择它比我从 SLURM 请求的少 1GB。
我的问题是我超出了我在 SLURM 上选择的内存量,它终止了我的应用程序。看来 JVM 使用了大约 1GB 的内存,可能用于 GC 之类的东西。
是否有可能限制 JVM 的大小或至少驯服它。
干杯, 马库斯
【问题讨论】:
-
你使用了很多线程吗?他们的堆栈需要内存(我认为默认为 1mb),这可能不受 Xmx 参数的限制。
-
@inflagranti 我正在使用 6 个线程。默认情况下,1mb 的大小可能不足以解释它崩溃的原因。
-
@Thomas 我看过这个问题,但答案是:使用我已经在使用的“-Xmx##”参数。