问题标签 [permgen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
83853 浏览

java - 用tomcat PermGen空间做什么

背景:我有一个使用 JSP 的 web 项目。IDE 是 Eclipse。tomcat的配置是:资源变化时自动发布,发布间隔为“1秒”。

classes 文件夹中的一个属性文件,用于保存一些设置。它也可以由 servlet 动态修改。修改操作由 JSP 中的保存按钮触发。

问题:经过多次保存操作,Tomcat 自带java.lang.OutOfMemoryError: PermGen space.

日志信息

0 投票
3 回答
7041 浏览

java - 大 Permgen 尺寸 + 性能影响

我们在 tomcat 6 上运行 liferay 门户。每个 portlet 都是一个包含的 Web 应用程序,因此它包含 portlet 本身所需的所有库。我们目前有 30 多个 portlet。这样做的结果是,我们的 tomcat 的 permgen 会随着我们部署的每个 portlet 而增加。

我们现在有两条可以遵循的路径。将我们每个 portlet 常用的一些库移动到 tomcat 共享库中。这将包括诸如 spring/hibernate/cxf/.... 之类的东西来减小我们的 permgen 大小或更容易的是增加 permgen 大小。

第二个选项将允许我们将每个 portlet 保持为一个独立的实体。

现在的问题是,增加 permgen 大小是否会对性能产生负面影响?我们目前以 512MB 运行。我几乎没有找到关于这方面的信息。但是发现一些帖子是人们谈论在 1024MB permgen 大小上运行而没有问题。

0 投票
1 回答
7389 浏览

java - 我可以为 4GB 和 8GB Ram 提及多少 -XX:MaxPermSize 大小并为此计算?

对于 4GB 和 8GB Ram,我可以提到多少 -XX:MaxPermSize 大小。这是我系统的其他细节

操作系统:-window XP(32 位) RAM:-4 GB java_opt- -Xms1536m -Xmx1536m //(作为环境变量提及):tomcat 版本:-6.0.26

我有另一个带有 8GB 内存的系统,其他细节完全相同。是的,操作系统是 64 位 Window 7。

除此之外,还让我知道两个系统的 -Xmx 参数的最大值是多少?

如果有人可以告诉我计算得出该数字,那将是很棒的,这样我们就不必填写这个数字,但我们可以根据 RAM 系统进行逻辑计算?

我确实看到人们遇到 permgen 错误或堆错误,但每个人都在不断地使用这个参数,直到他们想出解决问题的方法。

0 投票
0 回答
2876 浏览

java - 为任何系统配置找到最大堆大小和最大永久代大小的程序/方法?

要测试最大堆大小和最大 permgen 空间,根据 Gilli在 Windows 中每个 java 进程的最大内存量中建议的回复?,我写了一个简单的java类,主要方法只是打印系统

当我使用以下参数从控制台运行该类时,它运行良好,但使用 2048 它给出了错误无法保留无法为对象堆保留足够的空间。这意味着对于我的系统,最大堆大小允许在 1536 到 2048 之间

根据http://publib.boulder.ibm.com/infocenter/javasdk/tools/index.jsp?topic=/com.ibm.java.doc.igaa/_1vg00014884d287-11c3fb28dae-7ff6_1001.html的链接,据说

在运行 64 位 Java 时,操作系统提供给 Java 进程的内存空间非常大。因此,您可以假设由于 Java 堆和本机堆之间的内存资源争用,Java 堆的最大大小没有限制。

所以我有 8 GB 的内存,为什么 VM 无法为对象堆保留足够的空间?

现在我想要的第二件事是为我的系统找到最大 permgen 大小。所以我用以下参数运行了相同的程序

但它再次说无法为对象堆保留足够的空间。这怎么可能,因为我有 8GB RAM 和 windows7 64 位操作系统。而且它甚至不允许128m的permgen?我确定我在这里遗漏了一些东西,但无法弄清楚?

0 投票
11 回答
111856 浏览

java - 如何清除tomcat中的PermGen空间错误

我在 Windows 环境中工作,每次使用 tomcat 时都会收到此错误-

我尝试添加JAVA_OPTS with the value as -Xms1024m -Xmx1024m系统变量,但我仍然一次又一次地遇到相同的错误(java.lang.OutOfMemoryError:PermGen 空间) 。

任何帮助将不胜感激。我也阅读了 Stack Overflow 上的其他帖子,但没有成功。

0 投票
2 回答
968 浏览

grails - Cloudfoundry 是否支持需要更大内存的应用程序?

我一直在使用 grails 开发一个网站,并使用 Cloudfoundry 对其进行演示。Grails 和 Cloudfoundry 太棒了!在 STS 中的 grails 插件和工具的支持下,它们易于使用。

我的应用程序使用 MySQL、MongoDB、SpringSecurity 等。我只在一个用户登录的情况下使用它,我会定期得到java.lang.OutOfMemoryError: PermGen space

我使用 grails 插件将内存增加到 1G。我试图设置 JAVA_OPTS 来增加内存,但这没有用。

我将检查内存的使用位置,但似乎一个用户和一小部分演示数据不应该推动内存限制。

Cloudfoundry 是否支持需要更大内存的应用程序?

阅读这篇文章后,我将 MaxPermSize 设置为 512M,并且不再出现内存不足错误。我在 Windows 上使用 grails cmdline,我不能设置多个 JAVA_OPTS,只使用列表中的第一个。grails cf-env-add JAVA_OPTS "-XX:MaxPermSize=512m -Xms512M -Xmx512M"这一设置增加了我的演示站点的稳定性。

0 投票
4 回答
1154 浏览

java - jar 中的类什么时候进入 PermGen

我的理解是 PermGen(在某种意义上)将类代码保存在内存中。通常我们有很多引用我们的类路径的 jar 文件。当一个 jar 文件包含在类路径中(比如在 tomcat 的 lib 目录中)时,所有这些 jar 的所有类是否都会自动加载到 PermGen 中?

在一个类似的问题中,一旦使用了一个 jar 文件的类,PermGen 是加载该 jar 文件中的所有类,还是只加载使用的类(然后在必要时加载其余的类文件)?

0 投票
2 回答
3757 浏览

java - Unable to change permgen memory

We have a PermGen Out of memory exception in our Java EE web application:

java.lang.OutOfMemoryError: PermGen space

We have read so many posts about how to solve it and almost all of them say that we have to increase PermSize (default and maximum). But we are not able to change them. We have tried to modify setenv.sh, catalina.sh and startup.sh adding this code:

export JAVA_OPTS="-XX:PermSize=M -XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"

And we also try to do it using the terminal:

export JVM_ARGS="-XX:PermSize=256m-XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"

But when we check it using "jstat -gcpermcapacity " nothing changes; the memory is always the same. Our enviroment is Centos 6, Apache 2.2, Tomcat 5.5, Java 6 and we have done our app deploy installing servlets by WHM in our account.

0 投票
1 回答
848 浏览

permgen - 从 ant 调用 install4j 编译器会导致 PermGen OutOfMemory 错误

我遇到了这样一种情况:install4j v4.2.8 在使用 GUI 和从命令行调用 install4jc 时运行良好并生成安装程序,但在通过 install4j ant 任务调用时失败并显示以下消息:

使用 visualvm,我确定 ant 任务正在分叉一个单独的 JVM,当 PermGen 使用量达到大约 88MB 时,它似乎失败了。install4j ant 任务文档没有说明能够将 VM args(例如 -XX:MaxPermSize=256MB)传递到分叉的 JVM,但我想知道是否可以选择这种方法或类似的方法。

0 投票
3 回答
8151 浏览

java - 如何分析 PermGen 空间?

可能重复:
如何分析 PermGen 内容?

我想知道是什么占用了 PermGen 空间 - 字符串实习生()或类?是否有任何工具可以帮助进行此分析?