Netty 如何在我的NioServerSocketChannelFactory实例中调用NioWorkerPool上的rebuildSelectors()?
我试图找出在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的推荐方法是什么?假设这是打电话的地方 谢谢,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
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边界之后。谢谢