NTTTCP를 사용하여 VM 네트워크 처리량 테스트

이 문서에서는 Microsoft의 무료 NTTTCP 도구를 사용하여 Azure Windows 또는 Linux VM(가상 머신)에서 네트워크 대역폭 및 처리량 성능을 테스트하는 방법을 설명합니다. NTTTCP와 같은 도구는 테스트용 네트워크를 대상으로 하며 성능에 영향을 줄 수 있는 다른 리소스의 사용을 최소화합니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
  • Azure의 Windows 또는 Linux 가상 머신 2개. Windows VM 을 만들거나 Linux VM을 만듭니다.
    • 처리량을 테스트하려면 보낸 사람수신자 역할을 하는 동일한 크기의 VM 두 개가 필요합니다. 두 VM은 동일한 근접 배치 그룹 또는 가용성 집합에 있어야 하므로 내부 IP 주소를 사용하고 테스트에서 부하 분산 장치를 제외할 수 있습니다.
    • 명령에 사용할 VM 코어 수와 수신기 VM IP 주소를 확인합니다. 보낸 사람 및 수신자 명령 모두 수신자의 IP 주소를 사용합니다.

참고 항목

VIP(가상 IP)를 사용하여 테스트할 수 있지만 이는 이 문서의 범위를 벗어납니다.

이 문서에 사용된 예제

설정
수신기 VM IP 주소 10.0.0.5
VM 코어 수 2

Windows VM 또는 Linux VM을 사용하여 처리량 테스트

NTTTCP를 사용하여 Windows VM에서 또는 NTTTCP-for-Linux를 사용하여 Linux VM에서 처리량을 테스트할 수 있습니다.

VM 준비 및 Windows용 NTTTCP 설치

  1. 보낸 사람 및 수신자 VM 모두에서 최신 버전의 NTTTCPc:\tools와 같은 별도의 폴더에 다운로드합니다.

  2. Windows 명령줄을 열고 ntttcp.exe를 다운로드한 폴더로 이동합니다.

  3. 수신기 VM에서 NTTTCP 트래픽이 도착할 수 있도록 Windows 방화벽 allow 규칙을 만듭니다. 특정 인바운드 TCP 포트를 허용하는 것보다 이름으로 nttcp.exe를 허용하는 것이 더 쉽습니다. 다음 명령을 실행하여 다른 경우 c:\toolsntttcp.exe의 다운로드 경로로 바꿉니다.

    netsh advfirewall firewall add rule program=c:\tools\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANY
    
  4. 구성을 확인하려면 다음 명령을 사용하여 수신기 및 보낸 사람 가상 머신에서 10초 동안 단일 TCP(Transfer Control Protocol) 스트림을 테스트합니다.

    수신기 VM

    ntttcp -r -m [<number of VM cores> x 2],*,<receiver IP address> -t 10 -P 1

    ntttcp -r -m 4,*,10.0.0.5 -t 10 -P 1
    

    보낸 사람 VM

    ntttcp -s -m [<number of VM cores> x 2],*,<receiver IP address> -t 10 -P 1

    ntttcp -s -m 4,*,10.0.0.5 -t 10 -P 1
    

    참고 항목

    이전 명령은 구성을 테스트하는 데에만 사용합니다.

    처음으로 테스트를 실행하여 설치를 확인하는 경우 짧은 테스트 기간을 사용하여 빠른 피드백을 받습니다. 도구가 작동하는지 확인한 후 가장 정확한 결과를 얻으려면 테스트 기간을 300초로 연장합니다.

처리량 테스트 실행

송신기 및 수신기 VM 모두에서 300초 또는 5분 동안 테스트를 실행합니다. 보낸 사람 및 수신자는 -t 매개 변수에 대해 동일한 테스트 기간을 지정해야 합니다.

  1. 수신기 VM에서 다음 명령을 실행하여 <number of VM cores><receiver IP address> 자리 표시자를 사용자 고유의 값으로 바꿉니다.

    ntttcp -r -m [<number of VM cores> x 2],*,<receiver IP address> -t 300

    ntttcp -r -m 4,*,10.0.0.5 -t 300
    
  2. 송신기 VM에서 다음 명령을 실행합니다. 보낸 사람 및 수신자 명령은 보낸 사람 또는 수신자 VM을 지정하는 -s 또는 -r 매개 변수에서만 다릅니다.

    ntttcp -s -m [<number of VM cores> x 2],*,<receiver IP address> -t 300

    ntttcp -s -m 4,*,10.0.0.5 -t 300
    
  3. 결과를 기다립니다.

테스트가 완료되면 출력은 다음 예제와 유사해야 합니다.

C:\tools>ntttcp -s -m 4,*,10.0.0.5 -t 300
Copyright Version 5.39
Network activity progressing...


Thread  Time(s) Throughput(KB/s) Avg B / Compl
======  ======= ================ =============
     0  300.006        29617.328     65536.000
     1  300.006        29267.468     65536.000
     2  300.006        28978.834     65536.000
     3  300.006        29016.806     65536.000


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


   Bytes(MEG)    realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
    34243.000000     300.005       1417.829          114.141


Throughput(Buffers/s) Cycles/Byte       Buffers
===================== =========== =============
             1826.262       7.036    547888.000


DPCs(count/s) Pkts(num/DPC)   Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
     4218.744         1.708        6055.769          1.190


Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
    25324915          2161992       60412      0     15.075

Windows VM과 Linux VM 간의 처리량 테스트

Windows VM과 Linux VM 간에 NTTTCP 처리량 테스트를 실행하려면 Windows의 -ns 플래그 또는 Linux의 -N 플래그를 사용하여 비동기화 모드를 사용하도록 설정합니다.

Windows VM을 수신기로 테스트하려면 다음 명령을 실행합니다.

ntttcp -r -m [<number of VM cores> x 2],*,<Linux VM IP address> -t 300

Windows VM을 송신기로 테스트하려면 다음 명령을 실행합니다.

ntttcp -s -m [<number of VM cores> x 2],*,<Linux VM IP address> -ns -t 300

다음 단계