NTTTCP를 사용하여 VM 네트워크 처리량 테스트
이 문서에서는 Microsoft의 무료 NTTTCP 도구를 사용하여 Azure Windows 또는 Linux VM(가상 머신)에서 네트워크 대역폭 및 처리량 성능을 테스트하는 방법을 설명합니다. NTTTCP와 같은 도구는 테스트용 네트워크를 대상으로 하며 성능에 영향을 줄 수 있는 다른 리소스의 사용을 최소화합니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- Azure의 Windows 또는 Linux 가상 머신 2개. Windows VM 을 만들거나 Linux VM을 만듭니다.
참고 항목
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 설치
보낸 사람 및 수신자 VM 모두에서 최신 버전의 NTTTCP를 c:\tools와 같은 별도의 폴더에 다운로드합니다.
Windows 명령줄을 열고 ntttcp.exe를 다운로드한 폴더로 이동합니다.
수신기 VM에서 NTTTCP 트래픽이 도착할 수 있도록 Windows 방화벽
allow
규칙을 만듭니다. 특정 인바운드 TCP 포트를 허용하는 것보다 이름으로 nttcp.exe를 허용하는 것이 더 쉽습니다. 다음 명령을 실행하여 다른 경우c:\tools
를 ntttcp.exe의 다운로드 경로로 바꿉니다.netsh advfirewall firewall add rule program=c:\tools\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANY
구성을 확인하려면 다음 명령을 사용하여 수신기 및 보낸 사람 가상 머신에서 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
매개 변수에 대해 동일한 테스트 기간을 지정해야 합니다.
수신기 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
송신기 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
결과를 기다립니다.
테스트가 완료되면 출력은 다음 예제와 유사해야 합니다.
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