iperf3
클라이언트 로 사용하는 Linux 상자가 있으며 Broadcom BCM5721, 1Gb 어댑터 (2 포트, 테스트에 1 개만 사용됨)를 사용하여 동일하게 설치된 Windows 2012 R2 서버 상자 2 개를 테스트합니다. 모든 머신은 단일 1Gb 스위치를 통해 연결됩니다.
300Mbit에서 UDP 테스트
iperf3 -uZVc 192.168.30.161 -b300m -t5 --get-server-output -l8192
전송 된 모든 패킷의 14 %가 손실됩니다 (정확히 동일한 하드웨어를 사용하지만 다른 NIC 드라이버를 사용하는 다른 서버 박스의 경우 손실은 약 2 % 임). 그러나 손실은 50Mbit에서도 발생합니다. 동등한 설정을 사용하는 TCP 성능 :
iperf3 -ZVc 192.168.30.161 -t5 --get-server-output -l8192
보고 된 재전송없이 800Mbit 북쪽의 전송 속도를 제공합니다.
서버는 항상 다음 옵션을 사용하여 시작됩니다.
iperf3 -sB192.168.30.161
누가 비난해야합니까?
리눅스 클라이언트 박스 (하드웨어? 드라이버? 설정?)편집 : 방금 한 Windows 서버 상자에서 다른 서버 상자로 테스트를 실행했으며 300Mbit의 UDP 패킷 손실이 22 %로 훨씬 높았습니다.- Windows 서버 박스 (하드웨어? 드라이버? 설정?)
- 모든 시험기를 연결하는 (단일) 스위치?
- 케이블?
편집하다:
이제 다른 방향으로 시도했습니다 : Windows-> Linux. 결과 : 패킷 손실은 항상 0 이고 처리량은 최대
- 840Mbit
-l8192
, 즉 단편화 된 IP 패킷 -l1472
조각화되지 않은 IP 패킷의 경우 250Mbit
흐름 제어가 처리량을 제한하고 패킷 손실을 방지한다고 생각합니다. 특히 후자의 조각화되지 않은 숫자는 TCP 처리량에 가깝지 않습니다 (조각화되지 않은 TCP는 조각화 된 TCP와 비슷한 숫자를 생성 함).하지만 패킷 손실 측면에서 Linux-> Windows에 비해 무한히 크게 향상되었습니다.
그리고 어떻게 알아?
서버의 드라이버 설정에 대한 일반적인 조언을 따라 성능을 최대화하고 활성화 / 비활성화 / 최대화 / 최소화 / 변경을 시도했습니다.
- 인터럽트 중재
- 흐름 제어
- 수신 버퍼
- RSS
- 웨이크 온랜
모든 오프로드 기능이 활성화되었습니다.
편집 또한 활성화 / 비활성화하려고했습니다.
- Ethernet @ Wirespeed
- 다양한 오프로드 기능
- 우선 순위 및 VLAN
비슷한 손실률.
UDP 실행의 전체 출력 :
$ iperf3 -uZVc 192.168.30.161 -b300m -t5 --get-server-output -l8192
iperf 3.0.7
Linux mybox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03) x86_64 GNU/Linux
Time: Wed, 13 May 2015 13:10:39 GMT
Connecting to host 192.168.30.161, port 5201
Cookie: mybox.1431522639.098587.3451f174
[ 4] local 192.168.30.202 port 50851 connected to 192.168.30.161 port 5201
Starting Test: protocol: UDP, 1 streams, 8192 byte blocks, omitting 0 seconds, 5 second test
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 33.3 MBytes 279 Mbits/sec 4262
[ 4] 1.00-2.00 sec 35.8 MBytes 300 Mbits/sec 4577
[ 4] 2.00-3.00 sec 35.8 MBytes 300 Mbits/sec 4578
[ 4] 3.00-4.00 sec 35.8 MBytes 300 Mbits/sec 4578
[ 4] 4.00-5.00 sec 35.8 MBytes 300 Mbits/sec 4577
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-5.00 sec 176 MBytes 296 Mbits/sec 0.053 ms 3216/22571 (14%)
[ 4] Sent 22571 datagrams
CPU Utilization: local/sender 4.7% (0.4%u/4.3%s), remote/receiver 1.7% (0.8%u/0.9%s)
Server output:
-----------------------------------------------------------
Accepted connection from 192.168.30.202, port 44770
[ 5] local 192.168.30.161 port 5201 connected to 192.168.30.202 port 50851
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.01 sec 27.2 MBytes 226 Mbits/sec 0.043 ms 781/4261 (18%)
[ 5] 1.01-2.01 sec 30.0 MBytes 252 Mbits/sec 0.058 ms 734/4577 (16%)
[ 5] 2.01-3.01 sec 29.0 MBytes 243 Mbits/sec 0.045 ms 870/4578 (19%)
[ 5] 3.01-4.01 sec 32.1 MBytes 269 Mbits/sec 0.037 ms 469/4579 (10%)
[ 5] 4.01-5.01 sec 32.9 MBytes 276 Mbits/sec 0.053 ms 362/4576 (7.9%)
TCP 실행 :
$ iperf3 -ZVc 192.168.30.161 -t5 --get-server-output -l8192
iperf 3.0.7
Linux mybox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03) x86_64 GNU/Linux
Time: Wed, 13 May 2015 13:13:53 GMT
Connecting to host 192.168.30.161, port 5201
Cookie: mybox.1431522833.505583.4078fcc1
TCP MSS: 1448 (default)
[ 4] local 192.168.30.202 port 44782 connected to 192.168.30.161 port 5201
Starting Test: protocol: TCP, 1 streams, 8192 byte blocks, omitting 0 seconds, 5 second test
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 109 MBytes 910 Mbits/sec 0 91.9 KBytes
[ 4] 1.00-2.00 sec 97.3 MBytes 816 Mbits/sec 0 91.9 KBytes
[ 4] 2.00-3.00 sec 97.5 MBytes 818 Mbits/sec 0 91.9 KBytes
[ 4] 3.00-4.00 sec 98.0 MBytes 822 Mbits/sec 0 91.9 KBytes
[ 4] 4.00-5.00 sec 97.6 MBytes 819 Mbits/sec 0 91.9 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-5.00 sec 499 MBytes 837 Mbits/sec 0 sender
[ 4] 0.00-5.00 sec 498 MBytes 836 Mbits/sec receiver
CPU Utilization: local/sender 3.5% (0.5%u/3.0%s), remote/receiver 4.5% (2.0%u/2.5%s)
Server output:
-----------------------------------------------------------
Accepted connection from 192.168.30.202, port 44781
[ 5] local 192.168.30.161 port 5201 connected to 192.168.30.202 port 44782
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 105 MBytes 878 Mbits/sec
[ 5] 1.00-2.00 sec 97.5 MBytes 818 Mbits/sec
[ 5] 2.00-3.00 sec 97.6 MBytes 819 Mbits/sec
[ 5] 3.00-4.00 sec 97.8 MBytes 820 Mbits/sec
[ 5] 4.00-5.00 sec 97.7 MBytes 820 Mbits/sec