2

问题摘要:

PS Eden Space附近显示的内存大小为 639.5 MB,而 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 Eden Space附近显示的内存大小为 639.5 MB。

如何增加PS伊甸园空间?我应该使用什么选项知道我们使用 Java8 ?

当我设置-Xms2558m:我的应用程序是一个 grails 应用程序(包括 spring 框架、spring 安全性......)

4

1 回答 1

4

几个问题:

-Xms设置初始 Heap 空间,与 Eden 空间无关。这就是 JVM 在启动时分配的内容。如果需要更多,它会分配到-Xmx以后,但这适用于总堆空间,而不是 GC 生成空间之一(那些将是堆的一部分)

您可以使用 配置年轻代和老年代的比例-XX:NewRatio=。检查您的 JVM 的文档,如果它是 Oracle 的,这可能就足够了,其他人可能有更好的链接。你会在网上找到很多 GC 教程和文章。

当您阅读它们时:就我而言,Young 和 Eden 经常被用作同义词。

2.5G 的永久代空间听起来 waaaaay 太大了——你应该使用 CATALINA_OPTS 来设置 tomcat 配置,而不是 JAVA_OPTS。

于 2014-12-07T08:09:49.350 回答