Gre*_*egC 5 nic intel central-processing-unit windows-server-2008-r2
这是我到目前为止所做的:
使用更多的 Rx/Tx 缓冲区可以最大程度地提高默认值的性能。我在每个适配器上将 RSS 队列设置为 4,并将第二个端口上的 RSS CPU 启动指定为 0 以外的值(在我使用的 PC 上为 16,具有 16 个内核,32 个 HT)。
通过观看 ProcessExplorer,我受到 CPU 处理大量传入中断的能力的限制,即使启用了 RSS。我在 2.x 模式下使用 PCIe x8(电气)插槽。两个适配器中的每一个都与 5GT/sec x8 总线连接。
操作系统响应能力无关紧要,I/O 吞吐量才重要。我受到客户端无法处理 Jumbo 数据包的限制。
接下来我应该尝试哪些设置?
详细信息:双 Xeon-E5 2665、32 GB RAM、RAID0 中的 8 个 SSD(用于 NIC 性能验证的 RAMDrive)、将通过 IIS/FTP 从 400 个客户端、尽快移动的 1TB 数据。
回应评论:
通过成对的 10 Gb/秒链路,实际读取吞吐量为 650 MB/秒,进入 RAM 驱动器
防病毒和防火墙关闭,AFAICT。(在这种情况下,我可以很好地控制 PC 上安装的内容。我如何确保没有过滤器降低性能?我必须跟进,好点。)
在进程资源管理器中,我看到 CPU 继续运行的时间(红色,内核时间),但网络和磁盘 I/O 停止
最大 RSS 处理器为默认值,16
X520-DA2 设备的两个实例都支持消息信号中断,MessageNumberLimit 设置为 18。这是我在我的低级桌面卡上看到的
高性能 NIC 的问题之一是现代 PC 架构在跟上时遇到了一些麻烦。但是,就您而言,这并不是什么大问题。让我解释。
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。
另请注意我在上面放置的 SMB Direct 链接上的评论:
如果您打算使用网络适配器的 RDMA 功能,则不应组合支持 RDMA 的网络适配器。组合后,网络适配器将不支持 RDMA。
更新:由于某种原因,看起来并非所有 10GBit NIC 都支持 RDMA。因此,首先检查您的模型的功能。
我的另一个想法是用于测试的协议类型可能会影响结果。即 TCP 开销之上的协议开销。我建议您考虑使用无需接触硬盘即可进行测试的工具,例如 iperf。某处有一个 Windows 端口。