【问题标题】:Exception in GlassfishGlassfish 中的异常
【发布时间】:2011-08-16 13:28:45
【问题描述】:

我在 glassfish 中遇到了一个非常恼火的例外,即

SEVERE: Exception in thread "RMI RenewClean-[192.168.1.2:8686]" 
SEVERE: PermGen space
java.lang.OutOfMemoryError: PermGen space

我的硬件资源很高,当我打开任务管理器并注意到资源时,它是可用的, 这个异常迫使我每 10 到 15 分钟重新启动一次电脑 :( 我该怎么办?

【问题讨论】:

    标签: exception glassfish


    【解决方案1】:

    您需要使用-XX:MaxPermSize=256m 标志增加PermGen 空间量。 见this related SO question

    要在 Glassfish 中进行设置,请使用 following steps

    • 连接到 Glassfish 服务器的管理界面 (localhost:4848)
    • 移动到 Application Server > JVM 设置 > JVM 选项 并检查分配给 Glassfish 实例的全局内存量(应该是类似 -Xmx512m 或更多)并添加一个具有值的 JVM 选项:

    -XX:MaxPermSize=256m

    内存量取决于您需要的量。如果它不断崩溃,请增加它,但阅读PermGen 文章可能有助于确定正确的数量。

    【讨论】:

    • 很多thanx,但是这个标志在哪里?我真的很困惑。我在bin文件夹里面的时候试过用cmd运行,但是没有成功!
    • 我不确定这是否是最新的,但请查看此配置指南:spaquet.blogspot.com/2006/07/…
    【解决方案2】:

    permgem 空间是 glassfish 中最烦人的错误之一。

    permgem space 是在服务器中使用大量部署或重新部署时出现的错误,因为服务器保留内存并且从不释放它。我建议您使用 Apache JMeter 监督服务器以查看内存量(如果接近最大值,请在崩溃之前重新启动它)。

    要临时修复它,您必须在服务器中包含一些变量,以改善他在 glassfish 管理员中的内存消耗,例如 amccormack。

    我建议你使用

    -XX:PermSize=512m

    -XX:MaxPermSize=512m

    -XX:+CMSClassUnloadingEnabled

    顺便说一句,如果出现 permgem space 错误,服务器将不会响应(即使是 asadmin stop-domain)。但是,如果您终止运行 glassfish 的 java 进程并调用 asadmin start-domain,则可以轻松重新启动。我认为这比重新启动所有服务器要快。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多