【问题标题】:Java 6u16 stopped with no reason on Window Server 2008 R2 SP1Java 6u16 在 Window Server 2008 R2 SP1 上无故停止
【发布时间】:2014-02-24 09:37:50
【问题描述】:

我有一个 Java 应用程序在 Window Server 2008 R2 SP1(版权所有 2009)和 JVM 6u16 x64 上运行,我的程序将每 5 秒写入一次日志以显示它仍然存在,但是,程序本身已停止写入日志10 到 20 秒,没有任何理由。 我使用 VisualVM 监控我的 Java 应用程序,但它也停止了,因为 VisualVm 在停止期间不断涌入新线程(用于监控) 停止只发生在上午 9 点到下午 4 点之间(一天 3 到 4 次),但不会发生在夜间。 这个 Java 应用程序在另一个 Window Server 2008 R2 SP1(版权所有 2007)上运行良好,所以我想知道新的 Win Server 2008(2009 版)是否与 JVM 存在一些兼容性问题,以及是否有任何 KB 已修复该问题

又测试了 2 件东西,但仍然没有运气 1. 写了一个C++程序,每秒写一个日期时间日志,但是当JVM停止时它并没有停止写,说明没有与操作系统相关的问题 2. 升级到JVM 6u45,但是java程序还是暂停了1次,持续了10秒,比6u16要好,白天发生了3到4次左右。

感谢您的帮助

【问题讨论】:

    标签: java jvm windows-server-2008-r2 java-6 windows-server-2008-x64


    【解决方案1】:

    听起来您可能遇到了偶尔“full GC”暂停的问题。

    我建议你打开 GC 日志,然后看看这些意外中断和 GC 日志消息中的事件之间是否存在关联;阅读 Java 命令手册条目中的 -Xloggc:file 选项。

    根据具体情况,解决方案可能是调整 JVM 的 GC 选项。

    【讨论】:

    • 我已经发布了GC日志,发现原因是由于CMD-remark,请查看下面我的gc日志。 14703.367:[GC [YG占用:289420 K(873856 K)] 14703.367:重新扫描(平行),0.2197166秒] 14703.587:[弱参处理,8.9358445秒] 14712.523:[类卸载,0.0075905秒] 14712.530:[擦洗符号& 字符串表,0.0075593 秒] [1 CMS 备注:7870334K(15728640K)] 8159754K(16602496K),9.6445978 秒] [时间:用户=11.15 系统=0.00,实际=9.64 秒]
    • 我的原始参数是 -Xms6G -Xmx6G -XX:NewSize=1G -XX:MaxNewSize=1G -XX:PermSize=512M -XX:MaxPermSize=512M,我已经将 permSize 设置从 512 减少到256,现在 CMS-remark 减少到 3 秒以下,请问如何进一步减少 CMS-remark 的暂停时间?
    猜你喜欢
    • 1970-01-01
    • 2012-05-25
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多