为什么带宽不是~10G?

为什么带宽不是~10G?

我最初在“网络工程”上发帖,但有人让我在这里提问。

我有 2 台服务器,它们之间直接通过 10G 电缆连接。我需要知道连接是否良好,并且确实有 10G 吞吐量。如果不是,我该如何检查问题是什么?我使用 IPERF 检查了带宽。

更新 我配置了巨型数据包、极端中断率、接收/发送缓冲区的最大值。对于 IPERF,我仅对服务器使用“iperf3.exe -s”,对客户端使用“iperf3.exe -c IP”。

根据测试,带宽为 1.5-1.7 Gbits/sec。这是否意味着连接是 10G?可能存在什么问题?

服务器A是Windows 8.1 Pro 64位

服务器B是Windows 7 Enterprise 64位

这是当 ServerA(192.168.10.100)为服务器、ServerB(192.168.10.200)为客户端时的输出:

-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.10.200, port 63772
[  5] local 192.168.10.100 port 5201 connected to 192.168.10.200 port 63773
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   170 MBytes  1.42 Gbits/sec
[  5]   1.00-2.00   sec   217 MBytes  1.82 Gbits/sec
[  5]   2.00-3.00   sec   217 MBytes  1.82 Gbits/sec
[  5]   3.00-4.00   sec   214 MBytes  1.80 Gbits/sec
[  5]   4.00-5.00   sec   217 MBytes  1.82 Gbits/sec
[  5]   5.00-6.00   sec   207 MBytes  1.74 Gbits/sec
[  5]   6.00-7.00   sec   199 MBytes  1.67 Gbits/sec
[  5]   7.00-8.00   sec   206 MBytes  1.73 Gbits/sec
[  5]   8.00-9.00   sec   192 MBytes  1.61 Gbits/sec
[  5]   9.00-10.00  sec   209 MBytes  1.75 Gbits/sec
[  5]  10.00-10.16  sec  30.3 MBytes  1.63 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.16  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.16  sec  2.03 GBytes  1.72 Gbits/sec                  receiver

这是当 B(192.168.10.200)为服务器、A(192.168.10.100)为客户端时的输出:

-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.10.100, port 55565
[  5] local 192.168.10.200 port 5201 connected to 192.168.10.100 port 55566
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   170 MBytes  1.43 Gbits/sec
[  5]   1.00-2.00   sec   175 MBytes  1.47 Gbits/sec
[  5]   2.00-3.00   sec   175 MBytes  1.47 Gbits/sec
[  5]   3.00-4.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   4.00-5.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   5.00-6.00   sec   200 MBytes  1.68 Gbits/sec
[  5]   6.00-7.00   sec   176 MBytes  1.47 Gbits/sec
[  5]   7.00-8.00   sec   177 MBytes  1.48 Gbits/sec
[  5]   8.00-9.00   sec   186 MBytes  1.56 Gbits/sec
[  5]   9.00-10.00  sec   179 MBytes  1.50 Gbits/sec
[  5]  10.00-10.04  sec  6.42 MBytes  1.46 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.04  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.04  sec  1.76 GBytes  1.51 Gbits/sec                  receiver

更新2-UDP

当 192.168.10.100 为服务器时

iperf3.exe -c 192.168.10.100 -u -V
iperf 3.1.3
CYGWIN_NT-6.1 ServerB 2.5.1(0.297/5/3) 2016-04-21 22:14 x86_64
Time: Tue, 09 Aug 2016 19:58:03 GMT
Connecting to host 192.168.10.100, port 5201
      Cookie: ServerB.1470772683.561800.7c902a3e559
[  4] local 192.168.10.200 port 63675 connected to 192.168.10.100 port 5201
Starting Test: protocol: UDP, 1 streams, 8192 byte blocks, omitting 0 seconds, 1
0 second test
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   1.00-2.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   2.00-3.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   3.00-4.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   4.00-5.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   5.00-6.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   6.00-7.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   7.00-8.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   8.00-9.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   9.00-10.00  sec   128 KBytes  1.05 Mbits/sec  16
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datag
rams
[  4]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  0.437 ms  0/160 (0%)
[  4] Sent 160 datagrams
CPU Utilization: local/sender 1.7% (0.9%u/0.8%s), remote/receiver 0.1% (0.0%u/0.
1%s)

当 192.168.10.200 为服务器时

iperf3.exe -c 192.168.10.200 -u -V
iperf 3.1.3
CYGWIN_NT-6.3 ServerA 2.5.1(0.297/5/3) 2016-04-21 22:14 x86_64
Time: Tue, 09 Aug 2016 20:37:11 GMT
Connecting to host 192.168.10.200, port 5201
      Cookie: ServerA.1470775031.986727.6f8e913650af9b
[  4] local 192.168.10.100 port 51834 connected to 192.168.10.200 port 5201
Starting Test: protocol: UDP, 1 streams, 8192 byte blocks, omitting 0 seconds, 1
0 second test
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec   152 KBytes  1.24 Mbits/sec  19
[  4]   1.00-2.00   sec   144 KBytes  1.18 Mbits/sec  18
[  4]   2.00-3.00   sec   160 KBytes  1.31 Mbits/sec  20
[  4]   3.00-4.00   sec   160 KBytes  1.31 Mbits/sec  20
[  4]   4.00-5.00   sec   152 KBytes  1.25 Mbits/sec  19
[  4]   5.00-6.00   sec   152 KBytes  1.24 Mbits/sec  19
[  4]   6.00-7.00   sec   152 KBytes  1.25 Mbits/sec  19
[  4]   7.00-8.00   sec   152 KBytes  1.25 Mbits/sec  19
[  4]   8.00-9.00   sec   152 KBytes  1.24 Mbits/sec  19
[  4]   9.00-10.00  sec   144 KBytes  1.18 Mbits/sec  18
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datag
rams
[  4]   0.00-10.00  sec  1.48 MBytes  1.25 Mbits/sec  0.202 ms  0/189 (0%)
[  4] Sent 189 datagrams
CPU Utilization: local/sender 0.1% (0.1%u/0.0%s), remote/receiver 0.0% (0.0%u/0.
0%s)

更新 3 - NTTTCP W/O -NDL

服务器A

ntttcp.exe -s -m 8,*,192.168.10.200 -l 128k -a 2 -t 15
Copyright Version 5.31
Network activity progressing...


Thread  Time(s) Throughput(KB/s) Avg B / Compl
======  ======= ================ =============
     0   15.000        65544.533    131072.000
     1   15.000        65518.933    131072.000
     2   15.000        93585.067    131072.000
     3   15.002        63906.146    131072.000
     4   15.000        65536.000    131072.000
     5   15.000        62310.400    131072.000
     6   15.001        81837.744    131072.000
     7   15.001        73262.316    131072.000


#####  Totals:  #####


   Bytes(MEG)    realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
     8371.875000      15.001       8854.867          558.088


Throughput(Buffers/s) Cycles/Byte       Buffers
===================== =========== =============
             4464.702      17.198     66975.000


DPCs(count/s) Pkts(num/DPC)   Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
    12120.992         0.823       30450.170          0.328


Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
      991381           149616           9      0     36.026

服务器B

ntttcp.exe -r -m 8,*,192.168.10.200 -rb 2M -a 16 -t 15
Copyright Version 5.31
Network activity progressing...


Thread  Time(s) Throughput(KB/s) Avg B / Compl
======  ======= ================ =============
     0   15.000        65546.450     60268.990
     1   14.999        65523.318     60229.282
     2   14.999        93582.889     60659.943
     3   14.999        63900.843     61621.870
     4   15.000        65536.817     60278.174
     5   14.999        62316.071     61141.628
     6   14.999        81840.156     60394.032
     7   14.999        73264.934     60858.538


#####  Totals:  #####


   Bytes(MEG)    realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
     8371.320061      14.999       8942.835          558.125


Throughput(Buffers/s) Cycles/Byte       Buffers
===================== =========== =============
             8930.003       5.314    133941.121


DPCs(count/s) Pkts(num/DPC)   Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
     7965.264         8.216       14260.151          4.589


Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
      146841           981564           1      0      9.699

更新4-NTTTCP 带有-NDL

服务器A

ntttcp.exe -s -m 8,*,192.168.10.200 -l 128k -a 2 -t 15 -ndl
Copyright Version 5.31
Network activity progressing...


Thread  Time(s) Throughput(KB/s) Avg B / Compl
======  ======= ================ =============
     0   14.999        78059.604    131072.000
     1   15.000        76902.400    131072.000
     2   14.999        59882.392    131072.000
     3   14.999        62485.232    131072.000
     4   14.999        72734.449    131072.000
     5   15.001        77520.165    131072.000
     6   15.000        62702.933    131072.000
     7   15.000        62771.200    131072.000


#####  Totals:  #####


   Bytes(MEG)    realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
     8101.250000      15.000       8912.094          540.083


Throughput(Buffers/s) Cycles/Byte       Buffers
===================== =========== =============
             4320.667      17.355     64810.000


DPCs(count/s) Pkts(num/DPC)   Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
     9966.333         0.974       29515.333          0.329


Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
      953174           145579           1      0     35.182

服务器B

ntttcp.exe -r -m 8,*,192.168.10.200 -rb 2M -a 16 -t 15 -ndl
Copyright Version 5.31
Network activity progressing...


Thread  Time(s) Throughput(KB/s) Avg B / Compl
======  ======= ================ =============
     0   15.000        78054.000     60255.789
     1   15.001        76903.606     60839.375
     2   15.000        59880.183     61786.888
     3   14.999        62483.832     60812.856
     4   15.000        72730.333     61516.405
     5   14.999        77520.335     60398.365
     6   14.998        62701.660     60628.917
     7   14.998        62771.436     60585.766


#####  Totals:  #####


   Bytes(MEG)    realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
     8100.944093      14.999       8943.556          540.099


Throughput(Buffers/s) Cycles/Byte       Buffers
===================== =========== =============
             8641.583       4.888    129615.105


DPCs(count/s) Pkts(num/DPC)   Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
     7912.594         8.003       14043.670          4.509


Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
      143914           949785           0      0      8.633

答案1

事实证明,该问题与 Windows 7/8 客户端如何管理 TCP 窗口缩放有关。

默认情况下,Windows 客户端版本更喜欢相对较小的 TCP 窗口,优先考虑延迟而不是吞吐量。当使用非常快的链接时(如本例),将自动调整设置为正常可以带来显着的带宽增益。

要将自动调整设置为更合理的值,可以使用命令netsh interface tcp set heuristics disabled。无论如何,看看这里了解更多信息。

相关内容