Java 6u16在Windows Server 2008 R2 SP1上无故停止

Java 6u16在Windows Server 2008 R2 SP1上无故停止,java,jvm,windows-server-2008-r2,java-6,windows-server-2008-x64,Java,Jvm,Windows Server 2008 R2,Java 6,Windows Server 2008 X64,我有一个Java应用程序在Windows Server 2008 R2 SP1(版权所有2009)上运行,带有JVM 6u16 x64,我的程序将每5秒写入一次日志,以显示它仍然处于活动状态,但是,程序本身已停止写入日志10到20秒,没有任何原因。 我使用了VisualVM来监视我的Java应用程序,但它也停止了,因为VisualVM在暂停期间不断地注入新线程(用于监视) 暂停只发生在上午9点到下午4点之间(一天3到4次),但不发生在夜间。 这个Java应用程序在另一个Windows Serve

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

又测试了两个东西,但还是没有运气 1.编写了一个C++程序,在每秒写入一个日期时间日志,但是当JVM停止时,它没有停止写入,这表明没有与OS相关的问题。 2.升级到JVM6U45,但是java程序仍然暂停了1次,持续了10秒,这比6u16要好,因为它在白天发生了3到4次

感谢您的帮助

听起来您可能会遇到偶尔“完全GC”暂停的问题

我建议您打开GC日志记录,然后查看这些不必要的中断与GC日志消息中的事件之间是否存在关联;阅读Java命令手册条目中的
-Xloggc:file
选项


根据这一点,解决方案可能是调整JVM的GC选项。

我已经发布了GC日志,发现原因是CMD备注,请检查下面我的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秒][Times:user=11.15 sys=0.00,real=9.64秒]我原来的参数是-Xms6G-Xmx6G-XX:NewSize=1G-XX:MaxNewSize=1G-XX:PermSize=512M-XX:MaxPermSize=512M,我已经将PermSize设置从512减少到256,现在CMS备注减少到3sec以下,我可以知道如何进一步减少CMS备注的暂停时间吗?