如何正确设置permgen大小?

황현정*_*황현정 61 java grails tomcat jvm permgen

我有这个带有tomcat,java和grails的VM.我一直在犯permgen错误所以我环顾四周找到了解决方案:

set JAVA_OPTS="-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m"
Run Code Online (Sandbox Code Playgroud)

我使用SSH访问vm并输入上面的参数.我想这可以解决问题.事情是,我想确保我做得正确.所以我再次搜索了如何检查当前的permSize,这是我得到的解决方案:

jinfo -flag MaxPermSize 6444
Run Code Online (Sandbox Code Playgroud)

6444是pid,作为回应,我得到了这个.

-XX:MaxPermSize=85983232
Run Code Online (Sandbox Code Playgroud)

问题:maxPermSize的值是以字节为单位的吗?因为,如果是,那就意味着java_opts命令不起作用.我期待得到512米,但85983232字节= 82 MB ...或者我看错了..?有人可以开导我这个吗?d:

ami*_*ngh 75

您必须更改Tomcat Catalina启动文件中定义的CATALINA_OPTS选项中的值.增加PermGen内存更改MaxPermSize变量的值,否则更改变量的值Xmx .

Linux和Mac OS:打开或创建setenv.sh放在"bin"目录中的文件.您必须将更改应用于此行:

export CATALINA_OPTS="$CATALINA_OPTS -server -Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m"
Run Code Online (Sandbox Code Playgroud)

视窗:

打开或创建setenv.bat放在"bin"目录中的文件:

set CATALINA_OPTS=-server -Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)

  • 实际上,建议的方法是创建一个setenv.bat(Windows)或setenv.sh(*nix)并将条目放在那里,Tomcat会选择这些并且更容易管理升级 (51认同)

mat*_*res 21

不要将环境配置放在catalina.bat/catalina.sh中.相反,您应该在CATALINA_BASE\bin\setenv.bat中创建一个新文件,以使您的自定义与tomcat安装分开.