Я запускаю приложение Java в Linux-кластере с SLURM в качестве менеджера ресурсов. Чтобы запустить мое приложение, я должен указать для SLURM объем памяти, который мне понадобится. SLURM будет запускать мое приложение в виде виртуальной машины с указанным объемом памяти. Чтобы сообщить моему java-приложению, сколько памяти он может использовать, я использую параметр -Xmx ## g. Я выбираю его на 1 ГБ меньше, чем я просил у SLURM.Как ограничить потребление памяти общей памяти Java VM?
Моя проблема в том, что я превысил объем памяти, который я выбрал на SLURM, и это прекращает мое приложение. Кажется, что JVM использует около 1 ГБ памяти, возможно, для таких вещей, как GC или около того.
Есть ли возможность ограничить размер JVM или, по крайней мере, приручить его.
Приветствия, Маркус
Вы используете много потоков? Им нужна память для своих стеков (по умолчанию мне кажется, что 1mb), и это может не ограничиваться параметром Xmx. –
Возможный дубликат [Как установить максимальное использование памяти для JVM?] (Http://stackoverflow.com/questions/1493913/how-to-set-the-maximum-memory-usage-for-jvm) – Thomas
@inflagranti Я использую 6 потоков. По умолчанию размер 1mb, вероятно, недостаточен, чтобы объяснить, почему он сбой. – markus