使用更多Rx / Tx缓冲区可以提升默认性能.我在每个适配器上将RSS队列设置为4,并将第二个端口上的RSS cpu指定为0以外的值(在我使用的PC上是16,有16个核心,32个HT).
从观看ProcessExplorer,我受到cpu处理大量传入中断的能力的限制,即使启用了RSS也是如此.我在2.x模式下使用PCIe x8(电气)插槽.两个适配器中的每一个都连接5GT /秒x8总线.
操作系统响应无关紧要,I / O吞吐量确实如此.我受限于客户无法处理Jumbo数据包.
我接下来应该尝试哪些设置?
详细信息:双Xeon-E5 2665,32 GB RAM,RAID0中的8个SSD(用于NIC性能验证的RAMDrive),1TB数据将通过IIS / FTP从400个客户端移动,尽快.
回应评论:
实际读取吞吐量为650 MB /秒,通过一对组合的10Gb /秒链路进入RAM驱动器
防病毒和防火墙已关闭,AFAICT. (在这种情况下,我对PC上安装的内容有相当好的控制.我怎么能确定没有过滤器会降低性能?我必须跟进,好点.)
在Process Explorer中,我看到cpu继续运行的时间段(红色,内核时间),但网络和磁盘I / O已停止
Max RSS处理器的默认值为16
X520-DA2设备的两个实例都支持消息信号中断,MessageNumberLimit设置为18.这是我在低端桌面卡上看到的内容
cpu必须做很多处理TCP数据包的工作.这会影响吞吐量.在您的情况下,限制的不是网络硬件,而是服务器使网络链接饱和的能力.
在最近的时间里,我们已经看到处理从cpu移动到NIC,就像校验和卸载一样.英特尔还增加了一些功能,有助于进一步降低负载.这很酷,我确信所有优化功能都已打开.
正如你所提到的,巨型帧 – 实际上有助于提高吞吐量.但没有RDMA那么多.
大多数10GBit以太网硬件都有一个非常好的未充分利用的功能,称为RDMA或远程直接内存访问.它允许NIC通过网络执行内存到内存副本,而无需cpu的干预.好吧,好的,cpu告诉NIC要做什么,然后NIC完成剩下的工作.问题是,它还没有被使用.但它已经到了那里.显然,在最新版本的Microsoft Windows Server 2012中,它们有一个名为SMB Direct的东西.它使用RDMA.因此,如果您想增加吞吐量,则需要使用它.
您是否可以将一些测试硬件组装在一起并将其安装到那里以查看其性能如何?
顺便说一句,我不确定你是否会在10Gbit上看到这么多,但是快速RAM有助于RDMA特别是56Gbit Infiniband.通常,最好使用服务器支持的最快RAM.
You should not team RDMA-capable network adapters if you intend to use
the RDMA capability of the network adapters. When teamed,the network
adapters will not support RDMA.
更新:由于某种原因,看起来并非所有10GBit NIC都支持RDMA.
因此,请先检查模型的功能.
我的另一个想法是用于进行测试的协议类型可能会影响结果.即TCP开销之上的协议开销.我建议你研究一下可以测试的东西,而不用触摸硬盘,如iperf.某处有一个Windows端口.