1

我们有一个基于 Netty 的消息中间件,它基本上用作 http 代理。它在 Windows 2003、1 CPU x86、2GB RAM 上运行。

Netty 版本:3.2.5.Final Java 1.6.0_u18

一个恶意软件(McShield 服务)运行 6 分钟并消耗近 100% 的 CPU。在此事件之后,3 个“新 I/O 服务器工作者”线程正在“循环”并消耗 100% 的 CPU。它们以某种方式挂在 SelectorUtil.select() 中。

当时无法执行 threaddump(由 win 服务启动的程序:-/)。当进程仍在使用 98% 的 CPU 时,下面的一个是 8 小时后制作的。

线程转储 http://www.stabilit.ch/download/sc/tr/threaddump.txt
顶级线程 http://www.stabilit.ch/download/sc/tr/topthreads.jpg

这是一个已知的错误?提前致谢!

4

2 回答 2

2

可能是与此类似的问题:https ://github.com/netty/netty/issues/302

如果可能的话,我肯定会尝试最新的 3.6 版本。

于 2013-06-26T09:03:48.010 回答
1

42的答案似乎很受欢迎。当我在寻找 sun.nio.ch.SelectorImpl 的源代码时,我遇到了这个HP 页面,报告了一个类似的问题。但是,我不确定它们是否完全匹配。其中一个似乎特定于 FileSystem 选择器,但另一个似乎非常接近。它已经存在了一段时间,并已在 Java 7(b12) 中得到修复。

于 2013-06-26T13:39:16.527 回答