2015-11-22 6 views
0

Я установил Tomcat 8 с Java 8 на сервер VPS с 1024 оперативной памяти. Но когда я развертываю военный пакет, я получаю ошибку для памяти.Tomcat 8 limit memory

Я попытался ограничить выделенную память с этим setenv.sh сценария:

#! /bin/sh 
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms48m -Xmx1024M -XX:MaxPermSize=512m 

Но я получаю эту ошибку, когда я начинаю Tomcat:

[[email protected] bin]# ./shutdown.sh 
Using CATALINA_BASE: /opt/apache-tomcat-8.0.26 
Using CATALINA_HOME: /opt/apache-tomcat-8.0.26 
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.0.26/temp 
Using JRE_HOME:  /
Using CLASSPATH:  /opt/apache-tomcat-8.0.26/bin/bootstrap.jar:/opt/apache-tomcat-8.0.26/bin/tomcat-juli.jar 
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0 
[[email protected] bin]# 

У вас есть какие-либо идеи, что является надлежащий способ ограничить использование Java 512 МБ оперативной памяти?

+0

Это PermSize, а не память. Они отменили модель памяти для JDK8. Нет больше perm gen: https://dzone.com/articles/java-8-permgen-metaspace – duffymo

+0

Какую конфигурацию мне нужно добавить в setenv.sh, чтобы ограничить выделенное ОЗУ объемом 700 МБ JVM? –

+1

Итак, если вы хотите ограничить использование общей памяти, вы бы хотели -Xmx500 или что-то в этом роде (это не вся куча в конце концов ...) – Jan

ответ

0

Это нормально, системное свойство PermSize и MaxPermSize были удалены в Java8, и их использование вызывает предупреждение.

Вместо этого вы можете использовать MaxMetaspaceSize, но ваш вопрос непонятен. С PermSize вы уменьшаете память, выделенную постоянному поколению, объекты, которые необходимы JVM и вашему контейнеру в любое время.

Если вы хотите, чтобы уменьшить объем памяти, используемой вашей виртуальной машины Java (только кучу -> массивы и экземпляры), вы должны использовать XMS (размер в сек терпкий) и Xmx (ма х размер).

Например: -Xms256m -Xmx1024M