Возможный дубликат:
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 МБ ОЗУ. без свопа. Вы действительно действительно уверен, что хочешь пойти по этому пути?