我在带有1024 RAM的VPS服务器上安装了带有Java 8的Tomcat 8。但是当我部署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内存的正确方法是什么?
答案 0 :(得分:0)
这是正常的,系统属性PermSize
和MaxPermSize
已在Java8中删除,并且它们的使用会引发警告。
您可以使用MaxMetaspaceSize
代替,但您的问题不明确。使用PermSize,可以减少分配给永久生成的内存,这是JVM和容器始终需要的对象。
如果要减少JVM使用的内存(只有堆 - >数组和实例),则应使用Xms( s tart的大小)和Xmx(ma x 尺寸)。
例如: -Xms256M -Xmx1024M