Назад | Перейти на главную страницу

Почему не работает java -Xmx?

Возможный дубликат:
Linux не хватает памяти на VPS

В моем Ubuntu 11.10 VPS перед запуском файла jar:

# free -m
             total       used       free     shared    buffers     cached
Mem:           256          5        250          0          0          0
-/+ buffers/cache:          5        250
Swap:            0          0          0

Запустите файл jar, который ограничен максимумом 32 млн объем памяти:

java -Xms8m -Xmx32m -jar ./my.jar

Теперь состояние памяти следующее:

# free -m
             total       used       free     shared    buffers     cached
Mem:           256        155        100          0          0          0
-/+ buffers/cache:        155        100
Swap:            0          0          0

Эта банка занята 150 млн объем памяти.

И я не могу запустить никакую другую команду Java:

# java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

# java -Xmx8m -version  
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

Я хочу знать, почему -Xmx параметр не действует?

Как я могу ограничить размер файла jar, используя память?

В -Xmx Параметр определяет размер кучи, он же память, которую вы можете выделить в программе. В java двоичный и загруженный jar Каждый файл, естественно, требует дополнительного места.

Это не Java, которая израсходовала всю память, система также потребляет RAM для кеширования данных (посмотрите на вывод кеша из free -m и top)

Вы используете Java (программное обеспечение BLOATED) на VPS с 256 МБ ОЗУ. без свопа. Вы действительно действительно уверен, что хочешь пойти по этому пути?