问题标签 [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.
java - Struts2 PermGen 内存不足错误
我注意到在大型应用程序中会发生这种情况,前端服务器非常快地吞噬 PermGen,最糟糕的是它在每个请求上都在不断增加,有时即使我们根本不向应用程序服务器发出任何请求,它也会继续增加. 我在 tomcat 6.0.33、tomcat6.0.29 上都遇到了这个问题。
为了隔离问题,我选择了 struts 空白,令我沮丧的是,它显示出相同的趋势。这是正常的吗?我尝试使用 maven (mvn archetype:generate) 检查一些 struts2 版本,如 2.2.1、2.2.1.1、2.2.3.1,在码头运行它们后,我注意到 PermGen 空间在每个请求中都被填满了 2 -3KB。我正在测试 struts blank 和 jetty-6.1.21。
由于 PermGen 随着请求数量的增加而增加,我怀疑用它投入生产有多少价值?
java - 方法区和 PermGen
我试图了解 HotSpot JVM 的内存结构,但对“方法区域”和“PermGen”空间这两个术语感到困惑。我提到的文档说方法区包含类和方法的定义,包括字节码。其他一些文档说它们存储在 PermGen 空间中。
那么我可以断定这两个内存区域是相同的吗?
java - 在 Tomcat 上使用 Jenkins 重新部署 Grails 应用程序会填充 PermGen 空间
目前,我们在 Tomcat 6 上部署 Grails 应用程序时遇到各种问题,主要是内存使用问题和通过 Jenkins 重新部署。
应用程序占用越来越多的内存,我们尝试使用 CMSPermGenSweepingEnabled 解决这个问题(我们正在使用 UseConcMarkSweepGC),所以现在应该清理 Groovy 使用的临时类。
仍然存在的问题是,在每次重新部署(使用 jenkins)时,应用程序需要大约 150 mb 的额外 Permgen 空间......知道如何避免这种情况吗?
我们正在使用 Grail 1.3.7,我们当前的配置标志是
java - 释放类加载器时,何时在单例上调用 finalize?
“已发布”是指没有对剩余类加载器的引用。
我们遇到了一个问题,经常重新部署的 Java EE 应用程序会占用 permgen 空间。分析表明,Java EE 应用程序中的单例已经传递了对应用程序外部应用程序类加载器对象的引用(违反了 Java EE 规则),并且在取消部署应用程序时没有清除它们。
假设没有其他对单例或类对象的引用,当其类的类加载器被释放时,单例的 finalize() 是否会被调用? 我想清除那里的流氓入站引用。或者我是否在一个 catch-22 中,直到类加载器本身可以被垃圾收集之前,finalize 才会被调用——因此永远不会因为流氓外部引用而被调用?
这里的主要问题可能是:
在这种情况下,类对象的类加载器还不能被垃圾收集吗? 这可能取决于类加载器行为的规范,或者可能取决于实现。
参考(另一种!;-))将不胜感激,但不是必需的。
java - 保持 MaxPermSize 小有什么好处吗?
假设一个 64 位 JVM,保持 MaxPermSize 小有什么显着的好处吗?
这是在频繁重新部署的 Java EE 应用程序的上下文中,并且存在类加载器泄漏。作为一种中期解决方法,将 MaxPermSize 提高到一个荒谬的值似乎是非常合理的——只要它不会耗尽磁盘交换空间。
因为未部署的应用程序的代码几乎都是未使用的(除了涉及泄漏的代码),它被操作系统调出。因此,未部署的碎屑对物理内存的负载似乎可以忽略不计;这已通过观察 RSS(Unix 上的工作集大小)得到验证。
还有其他我应该关注的影响吗?
weblogic - JVM 堆内存参数的 Jprobe 问题
当我将 Jprobe 与 weblogic 集成并通过增加堆内存来运行它时,我收到错误为“OutOfMemoryError:PermGen 空间故障”。这主要与jprobe,weblogic server和jvm有关请让我知道我该如何解决它。
java - 在 Tomcat 上热部署时出现 PermGen Space 错误
每次重新部署后,我都会在日志中看到以下消息。
最终在 1-2 次热部署后,服务器停止响应,我收到 PermGen 空间错误
如何获得有关错误来源的更多信息?
java - 以编程方式填充 JVM 永久代 (PermGen) 内存区域
我需要测试我开发的一些 JMX 监控脚本,特别是我想验证我对 PermGen 区域的监控是否正常工作。因此,为了测试这一点,我希望能够运行一些代码来加载大量类以使用 PermGen。
我目前的计划是编写一个脚本来生成prefix(1..n).java
编译它们,然后在提示运行:
有没有更优雅的解决方案来实现这一目标?
grails - 在 weblogic server 10.3.6 上部署 grails 项目战争时由于石英调度程序导致内存不足错误
当我在 weblogic 服务器上部署我的 grails 应用程序战争时(我正在使用 Quartz 调度),当我在 weblogic 上部署它时出现 permgen space 错误。该应用程序在 WAR 的 IDE 或 tomcat 部署中运行良好。错误是:
java - Java profiling Permgen:如何在 java 类中卸载枚举
我在一个地方,服务器(tomcat)上相同的war文件的重复部署-取消部署操作导致PermGen OutOfMemoryError。我的目标是确保在未部署战争时卸载所有类。
这是我的一堂课:
当我清除 ClassA 的所有引用时,我看不到 ClassA,并且在取消部署战争时将其卸载。但是,我仍然看到枚举引用并且 ClassA$EnumInsideClassA 没有被卸载。
'myState' 实例变量没有 getter,它只会与 ClassA 一起使用
任何帮助表示赞赏