这是我的情况:
-工作站 1:CPU i7-3770/16GB 内存/Gigabyte Z77-D3H 主板/Crucial CT256MX100SSD1 系统磁盘/网络适配器 intel X540-T1/Windows 7 64 位 -工作站 2:CPU i7-950/12GB 内存/ASUS P6X58D-E 主板/Crucial CT256MX100SSD1 系统磁盘/网络适配器 intel X540-T1/Windows 7 64 位
-切换器 HP procurve 2920,带有两个双 10 千兆以太网扩展卡。
两根 UTP 电缆均为 Cat6 电缆,长度均小于 15 米,并且直接从每个工作站连接到 hp 切换器。两个网络适配器似乎都以 10Gbps 的速度连接。
我正在使用 iperf 测试网络性能:
-工作站1:iperf -s -
工作站2:iperf -c<workstation1 ip>
我得到的是每秒 1Gbit,而不是每秒 10Gbit。那么我是否做错了什么步骤?有关于 Windows 7 网络限制的信息吗?谢谢。
已更新 - NTttcp 测试
C:\NTttcp-v5.28\x64>NTttcp.exe -s -m 8,*,192.168.1.20 -l 128k -a 2 -t 15
版权版本 5.28
网络活动正在进行中...
线程时间吞吐量(KB/秒)平均 B / Compl ====== ======= ================= ================== 0 15.001 38661.956 131072.000 1 14.999 38257.484 131072.000 2 14.998 53989.065 131072.000 3 14.998 38336.845 131072.000 4 14.999 38086.806 131072.000 5 15.000 37563.733 131072.000 6 14.997 56408.082 131072.000 7 15.000 52292.267 131072.000 ##### 总计:##### 字节数(MEG) 实时数(s) 平均帧大小 吞吐量(MB/s) =========== =========== ============== =============== ================ 5179.250000 15.000 1459.696 345.283 >吞吐量(缓冲区/秒)周期/字节缓冲区 ===================== ============== ========== 2762.267 6.912 41434.000 >DPCs(计数/秒) Pkts(数量/DPC) Intr(计数/秒) Pkts(数量/intr) ============= ============== ================ =================== 13668.933 1.633 22030.933 1.013 >已发送数据包已接收数据包重传错误平均 CPU % ============= ================= ============ ====== ========== 3720525 334723 4364 0 10.179
答案1
尝试显示的建议这里
- 您需要 RSS (接收方缩放)、LSO (大型发送/段卸载)、TCP 窗口缩放 (自动调整) 和 TCP Chimney (适用于 Windows),以及可选的 RSC (接收方合并),并正确设置和配置。
即使是现代处理器也无法在单个处理器核心上处理 10Gb 的读取量,因此 RSS 需要设置至少 4 个物理处理器核心(RSS 不适用于超线程逻辑核心),可能需要 8 个,具体取决于处理器,以将接收负载分布到多个处理器上。您可以使用 PowerShell(Windows)的 Set-NetAdapterRss cmdlet 执行此操作。
具有超线程的 4 个物理核心处理器的示例命令(0、2、4、6 为物理核心,1、3、5、7 为逻辑核心....基本为经验法则)Set-NetAdapterRss -Name "" -NumberOfReceiveQueues 4 -BaseProcessorNumber 0 -MaxProcessorNumber 6 -MaxProcessors 4 -Enabled
LSO 设置在 NIC 驱动程序和/或 PowerShell 中。这允许 Windows/Linux/其他操作系统创建一个大数据包(例如 64KB-1MB),并让 NIC 硬件处理将数据分段为 MSS 值。这降低了主机上的处理器使用率,并使传输速度更快,因为硬件分段速度更快,操作系统需要做的工作更少。
RSC 在 Windows 或 Linux 中以及 NIC 上设置。这与 LSO 相反。NIC 接收小块并将其合并成一个大数据包,然后将其发送到操作系统。降低接收端的处理器开销。
尽管 TCP Chimney 在 1Gb 世界中名声不佳,但它在 10Gb 世界中却大放异彩。在 Windows 8+/2012+ 中将其设置为自动,它只会在特定情况下在 10Gb 网络上启用。
TCP 窗口缩放(Windows 世界中的自动调整)是绝对必要的。没有它,TCP 窗口永远不会变得足够大以维持 10Gb 连接的高吞吐量。
- 启用 9K 巨型帧(有人说不行,有人说可以……这确实取决于硬件,所以要两种方式都测试)。
在我的硬件上,启用巨型帧是关键。还要特别注意 IRQ 合并设置。