Java Tomcat 8限制内存
我在具有1024个RAM的VPS服务器上安装了带有Java8的Tomcat8。但当我部署war包时,我得到了内存错误 我尝试使用此setenv.sh脚本限制分配的内存:Java Tomcat 8限制内存,java,tomcat,jvm,Java,Tomcat,Jvm,我在具有1024个RAM的VPS服务器上安装了带有Java8的Tomcat8。但当我部署war包时,我得到了内存错误 我尝试使用此setenv.sh脚本限制分配的内存: #! /bin/sh export JAVA_OPTS="-Djava.awt.headless=true -server -Xms48m -Xmx1024M -XX:MaxPermSize=512m 但当我启动Tomcat时,会出现以下错误: [root@ip-172-31-28-148 bin]# ./shutdown.s
#! /bin/sh
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms48m -Xmx1024M -XX:MaxPermSize=512m
但当我启动Tomcat时,会出现以下错误:
[root@ip-172-31-28-148 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
[root@ip-172-31-28-148 bin]#
您知道什么是限制Java使用512 MB RAM内存的正确方法吗?这很正常,系统属性
PermSize
和MaxPermSize
在Java8中已被删除,它们的使用会引起警告
您可以使用MaxMetaspaceSize
,但您的问题并不清楚。使用PermSize,您可以减少分配给永久生成的内存,JVM和容器随时都需要这些对象
如果要减少JVM使用的内存(仅堆-->数组和实例),应使用Xms(大小为start)和Xmx(maxsize)
例如:
-Xms256M
-Xmx1024M这是PermSize,不是内存。他们为JDK8重新定义了内存模型。不再使用perm gen:我需要向setenv.sh添加什么配置才能将JVM分配的RAM限制为700 MB?因此,如果您想限制总体内存使用量,您可能需要-Xmx500或其他什么(毕竟不完全是堆…)