Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netty 如何在我的NioServerSocketChannelFactory实例中调用NioWorkerPool上的rebuildSelectors()?_Netty_Cpu Usage - Fatal编程技术网

Netty 如何在我的NioServerSocketChannelFactory实例中调用NioWorkerPool上的rebuildSelectors()?

Netty 如何在我的NioServerSocketChannelFactory实例中调用NioWorkerPool上的rebuildSelectors()?,netty,cpu-usage,Netty,Cpu Usage,我试图找出在3.6.3中调用niowerpool.rebuildSelectors()的位置 在将Netty从3.5.11升级到任何3.6.x版本之后,只要我们通过基于Nio的ServerSocket channelfactory执行任何通信,我们就会遇到CPU问题。默认池中的所有200个线程都以大约45-55%的CPU开始运行,并且永远不会返回—所有显示它们的堆栈都位于select()…poll()逻辑中 我的问题是,我不知道什么时候该叫它,也不知道它暴露在哪里。NioWorkerPool在c

我试图找出在3.6.3中调用niowerpool.rebuildSelectors()的位置

在将Netty从3.5.11升级到任何3.6.x版本之后,只要我们通过基于Nio的ServerSocket channelfactory执行任何通信,我们就会遇到CPU问题。默认池中的所有200个线程都以大约45-55%的CPU开始运行,并且永远不会返回—所有显示它们的堆栈都位于select()…poll()逻辑中

我的问题是,我不知道什么时候该叫它,也不知道它暴露在哪里。NioWorkerPool在channelfactory实例中是私有的。在我的ChannelFactory上访问NioWorkerPool的推荐方法是什么?假设这是打电话的地方

谢谢,
Bob

构建
NioServerSocketChannelFactory
时,可以指定由您创建的
NioBossPool
NIOWerpool
。不要使用快捷方式构造函数,而是使用接受它们的构造函数。然后,您已经有了对这些对象的引用,并且可以在需要时调用它们


如果调用
rebuildSelectors()
确实解决了您的问题,请告知我们。因为遇到这样的问题不是很容易,我们很好奇我们的解决方法是否有助于缓解它。

当您构建一个
NioServerSocketChannelFactory
时,您可以指定由您创建的
niobospool
niowerpool
。不要使用快捷方式构造函数,而是使用接受它们的构造函数。然后,您已经有了对这些对象的引用,并且可以在需要时调用它们


如果调用
rebuildSelectors()
确实解决了您的问题,请告知我们。因为遇到这样的问题不是很容易,我们很好奇我们的解决方法是否有助于缓解它。

复制起来容易吗?我很想用yourkit profiler调试它…我可以在yourkit中轻松可靠地完成它,但复制代码不仅仅是简单的代码。它发生在我们的产品中,该产品在引擎盖下使用第三方图形数据库。这个数据库使用netty来实现我们使用的一些功能。如果你想在带外联系我,我可以用skype与你联系,我们可以调试这个。复制容易吗?我很想用yourkit profiler调试它…我可以在yourkit中轻松可靠地完成它,但复制代码不仅仅是简单的代码。它发生在我们的产品中,该产品在引擎盖下使用第三方图形数据库。这个数据库使用netty来实现我们使用的一些功能。如果你想与我联系,我可以用skype与你联系,我们可以调试。谢谢信任。今天早上我和诺曼一起工作了一段时间,向他展示了代码的作用,并给他发送了一些YourKit快照。希望通过这些,我们能够找出3.5.11和3.6.x之间的区别。我确实找到了一个可能的修复方法,即在客户端的ChannelFactory上调用releaseExternalResources()。然而,我很好奇,为什么我们不需要在3.5.11中称之为这个,而只是在我们越过3.6.x边界之后。谢谢你的信任。今天早上我和诺曼一起工作了一段时间,向他展示了代码的作用,并给他发送了一些YourKit快照。希望通过这些,我们能够找出3.5.11和3.6.x之间的区别。我确实找到了一个可能的修复方法,即在客户端的ChannelFactory上调用releaseExternalResources()。然而,我很好奇,为什么我们不需要在3.5.11中称之为这个,而只是在我们越过3.6.x边界之后。谢谢