воскресенье, 4 марта 2012 г.

Сердцем чую, 32-битная jvm подводит

Решил выделить чуть больше памяти под jvm, чтобы sbt пошустрее работала. Максимальный размер data segment установлен в 700Mb. Соответственно, указание java выделять под heap больше памяти (параметр -Xmx) кладет ее в корку. Не вопрос, увеличим размер, разрешим выделять памяти побольше. Однако, увеличив параметр ядра kern.maxdsiz до 1200Mb, с удивлением обнаружил что jvm вообще отказывается стартовать, будто ей теперь все время не хватает памяти, при любом запрашиваемом размере хипа. Причем свободной памяти достаточно.
Уже который раз себе говорю, что как разгребусь с рутиной, обязательно назад переползу под 64-битную версию, чтобы впринципе устранить проблемы с адресацией, но все руки не доходят. Жаль только, что в старый ноут больше 4 гиг не влезет. В магазинах ноутовых планок ddr2 по 4 гига не нашел, а было бы неплохо.

UPDATE:
Оказалось, что большой размер data size приводит к тому, что java не может выделить mmap нужного размера, и валится в процессе инициализации vm (нашел перед тем, как самому расчехлить kdump). Так что размер своего data size прийдется закатать обратно.