Netty Server流式传输到Netty客户端(点对点,1对1):
12 cores
,1Gbit NIC
=>以每秒300K 200字节消息的稳定速率运行32 cores
,10Gbit NIC
=> (相同的代码)从130K / s开始,在几分钟内降低到每秒数百Netperf表示"坏"环境实际上相当出色(可以稳定地传输600MB / s半小时)。
它似乎不是一个客户端问题,因为如果我将客户端交换到一个已知的好客户端(在C中写入)设置一个最大操作系统{{ {1}}除了读取byte [] s并忽略它们之外什么都不做=>行为仍然是一样的。
在达到高写水印(200MB,但尝试其他水印)之前,性能下降开始
Heap感觉很快,当然一旦达到最大值,GC就会锁定世界,但这种情况发生在" bad"症状表面。在"好"环境堆在1Gb的某处保持稳定,在逻辑上,给定配置,应该是。
我注意到的一件事是: 32个核心中的大多数都是在中使用的,而Netty Server流是我试图通过将所有Boss / NioWorker线程设置为SO_RCVBUF
来限制的(尽管无论如何都有一个频道,但以防万一):
1
但这并不限制使用的核心数量=>仍然使用大多数核心。据我所知,Netty尝试循环工作人员的任务,但怀疑是32个内核"同时"可能对于NIC来说太多了。
旁注:他们很乐意在Netty的邮件列表上讨论它,但它已经关闭了。尝试过Netty的IRC,但它已经死了
答案 0 :(得分:2)