PS Eden Space 附近显示的Memmory大小为639.5 MB WHILE JAVA_OPTS包含-Xms2558m -Xmx2558m
(2.5G)。
创建seten.sh文件后,我添加以下行:
export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xms2558m -Xmx2558m -XX:PermSize=2558m -XX:MaxPermSize=2558m -XX:+HeapDumpOnOutOfMemoryError
然后,我监视应用程序服务器的UI以检查内存的增加是用于什么
我很喜欢:为什么当我浏览我的应用程序时为什么 PS Old Gen 保持稳定,而 PS Eden Space 快速消耗内存。但是, PS伊甸园空间附近显示的Memmory大小为639.5 MB。
当我设置-Xms2558m
时:我的应用程序是grails应用程序(包括弹簧框架,弹簧安全性,......)太多了解
答案 0 :(得分:3)
几个问题:
-Xms
设置初始堆空间,与Eden空间无关。这就是JVM在启动时分配的内容。如果需要更多,则稍后分配最多-Xmx
,但这适用于总堆空间,而不是GC生成空间之一(那些将成为堆的一部分)
您可以使用-XX:NewRatio=
配置年轻一代和老一代的比例。查看JVM的文档,如果它是Oracle的this might suffice,其他人可能有更好的链接。您将在网上找到很多GC教程和文章。
当你阅读它们时:据我所知,Young和Eden经常被用作同义词。
2.5G的永久代空间听起来像waaaaay太大 - 你应该使用CATALINA_OPTS设置tomcat配置,而不是JAVA_OPTS。