har*_*anr 2 java tomcat permgen
我正在尝试在Windows Tomcat服务器上运行多个工具.服务器启动正常,我也可以看到Tomcat的管理器页面.但是当我打开一个工具时,会出现"OutOfMemoryError:PermGen space".我在catalina.bat中设置MaxPermSize尝试了很多,这是我的CATALINA_OPTS:
set CATALINA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms64m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
Run Code Online (Sandbox Code Playgroud)
当我在我的Tomcat服务器旁边运行JVisualVM时,我可以看到参数被很好地拾取:
但是当我进入监视器选项卡并检查PermGen时,最大值是67mb而不是我设置CATALINA_OPTS的512.所以参数设置,但Tomcat忽略它们..
我已经尝试了几个小时解决这个问题,但没有成功..
任何人?
删除集合中的"",你很好......不知道为什么.但那就是答案
set CATALINA_OPTS = -Djava.awt.headless = true -Dfile.encoding = UTF-8 -server -Xms64m -Xmx512m -XX:PermSize = 128m -XX:MaxPermSize = 512m -XX:+ CMSClassUnloadingEnabled -XX:+ CMSPermGenSweepingEnabled
- 编辑
顺便说一句,我想你也想要UseConcMarkSweepGC,否则其他2个CMS参数都不会做任何事情(仅需要2个中的一个,取决于JVM的版本)
请参阅 JVM标志CMSClassUnloadingEnabled实际上做了什么?
- 编辑2
这个问题也被问到tomcat6:https://serverfault.com/questions/64894/setting-catalina-opts-for-tomcat6-on-windows-doesnt-work
太糟糕了,博主没有解释为什么你不需要在windows中使用引号.
http://javahowto.blogspot.nl/2006/06/6-common-errors-in-setting-java-heap.html
但我认为这是因为引用它被视为一个重要论点.我唯一不理解的是为什么jvisualvm假装你正确设置它.但我想参数的显示实际上并没有看到它是如何在JVM中设置的,而只是很好地格式化了参数.
归档时间: |
|
查看次数: |
16976 次 |
最近记录: |