我最初在“网络工程”上发帖,但有人让我在这里提问。
我有 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
。无论如何,看看这里了解更多信息。