Java Tomcat 8限制内存

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

我在具有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.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或其他什么(毕竟不完全是堆…)