Azure VM 간의 네트워크 대기 시간 테스트
이 문서에서는 공개적으로 사용 가능한 도구인 Windows용 Latte 또는 Linux용 SockPerf를 사용하여 Azure VM(가상 머신) 간의 네트워크 대기 시간을 테스트하는 방법을 설명합니다.
가장 정확한 결과를 얻으려면 작업용으로 디자인되고 애플리케이션 대기 시간과 같은 다른 유형의 대기 시간을 제외하는 도구를 사용하여 VM 네트워크 대기 시간을 측정해야 합니다. Latte 및 SockPerf는 TCP(Transmission Control Protocol) 및 UDP(ser Datagram Protocol) 트래픽에 중점을 두어 가장 관련성이 큰 네트워크 대기 시간 결과를 제공합니다. 대부분의 애플리케이션은 이러한 프로토콜을 사용하며 이 트래픽은 애플리케이션 성능에 가장 큰 영향을 줍니다.
Ping과 같은 다른 많은 일반적인 네트워크 대기 시간 테스트 도구는 TCP 또는 UDP 트래픽을 측정하지 않습니다. Ping과 같은 도구는 애플리케이션에서 사용하지 않는 ICMP(Internet Control Message Protocol)를 사용합니다. ICMP 트래픽은 애플리케이션 트래픽과 다르게 처리될 수 있으며 애플리케이션 성능에 직접적인 영향을 주지 않습니다. ICMP 테스트 결과는 TCP 및 UDP를 사용하는 워크로드에 직접 적용되지 않습니다.
Latte 및 SockPerf는 TCP 또는 UDP 페이로드 배달 시간만 측정합니다. 이러한 도구는 다음 방법을 사용하여 두 물리적 컴퓨터 또는 가상 컴퓨터 간의 네트워크 대기 시간을 측정합니다.
- 보낸 사람 및 받는 사람으로 지정하여 컴퓨터 간에 양방향 통신 채널을 만듭니다.
- 양방향으로 패킷을 보내고 받고 RTT(왕복 시간)를 측정합니다.
네트워크 대기 시간에 맞춰 VM을 최적화하려면 VM을 만들 때 다음 권장 사항을 준수합니다.
- 최신 버전의 Windows 또는 Linux를 사용합니다.
- 성능 향상을 위해 가속화된 네트워킹을 사용하도록 설정합니다.
- Azure 근접 배치 그룹 내에 VM을 배포합니다.
- 더 나은 성능을 위해 더 큰 VM을 만듭니다.
다음 모범 사례를 사용하여 네트워크 대기 시간을 테스트하고 분석합니다.
네트워크 VM 배포, 구성 및 최적화를 완료하는 즉시 배포된 VM 간에 기준 네트워크 대기 시간 측정을 수행하여 벤치마크를 설정합니다.
다음 구성 요소 중 하나를 변경할 때 네트워크 대기 시간에 미치는 영향을 테스트합니다.
- OS(운영 체제) 또는 네트워크 스택 소프트웨어(구성 변경 포함)
- 가용성 영역 또는 PPG(근접 배치 그룹)에 배포하는 것과 같은 VM 배포 방법입니다.
- 가속화된 네트워킹 또는 크기 변경과 같은 VM 속성
- 라우팅 또는 필터링 변경과 같은 가상 네트워크 구성입니다.
제어된 변경 전에 항상 새 테스트 결과를 기준 또는 최신 테스트 결과와 비교합니다.
변경 내용을 관찰하거나 배포할 때마다 테스트를 반복합니다.
다음 절차에 따라 Windows용 Latte 또는 Linux용 SockPerf를 사용하여 네트워크 대기 시간을 설치하고 테스트합니다.
보낸 사람 및 수신기 Linux VM 모두에서 다음 명령을 실행하여 Linux 배포판에 따라 SockPerf를 준비합니다.
Red Hat Enterprise Linux(RHEL):
#RHEL - Install Git and other helpful tools sudo yum install gcc -y -q sudo yum install git -y -q sudo yum install gcc-c++ -y sudo yum install ncurses-devel -y sudo yum install -y automake sudo yum install -y autoconf sudo yum install -y libtool
Ubuntu:
#Ubuntu - Install Git and other helpful tools sudo apt-get install build-essential -y sudo apt-get install git -y -q sudo apt-get install -y autotools-dev sudo apt-get install -y automake sudo apt-get install -y autoconf sudo apt-get install -y libtool sudo apt update sudo apt upgrade
SUSE:
#SUSE - Install Git and other helpful tools sudo zypper install gcc sudo zypper install git sudo zypper install gcc-c++ sudo zypper install ncurses-devel sudo zypper install automake sudo zypper install autoconf sudo zypper install libtool sudo zypper install make
다음 명령을 실행하여 SockPerf를 복사, 컴파일 및 설치합니다.
#Bash - all distros
#From bash command line (assumes Git is installed)
git clone https://github.com/mellanox/sockperf
cd sockperf/
./autogen.sh
./configure --prefix=
#make is slow, may take several minutes
make
#make install is fast
sudo make install
SockPerf 설치가 완료되면 수신기 VM에서 SockPerf를 시작합니다. 사용 가능한 포트 번호는 모두 충분합니다. 다음 예제에서는
12345
포트를 사용합니다.10.0.0.4
의 예제 IP 주소를 수신기 VM의 IP 주소로 바꿉니다.#Server/Receiver for IP 10.0.0.4: sudo sockperf sr --tcp -i 10.0.0.4 -p 12345
이제 수신기가 수신 대기 중이면 발신자 또는 클라이언트 컴퓨터에서 다음 명령을 실행하여 수신 대기 포트의 수신기에 패킷을 보냅니다(이 경우
12345
).#Client/Sender for IP 10.0.0.4: sockperf ping-pong -i 10.0.0.4 --tcp -m 350 -t 101 -p 12345 --full-rtt
-t
옵션은 테스트 시간(초)을 설정합니다. 약 100초는 대표적인 결과를 반환하기에 충분한 시간입니다.-m
은 메시지 크기(바이트)를 나타냅니다. 평균 패킷의 경우 일반적으로 350바이트 메시지 크기가 사용됩니다. 크기를 조정하여 VM의 워크로드를 보다 정확하게 나타낼 수 있습니다.
결과를 기다립니다. VM이 얼마나 떨어져 있는지에 따라 반복 횟수가 달라집니다. 더 긴 테스트를 실행하기 전에 성공 여부를 테스트하려면 약 5초의 짧은 테스트로 시작하는 것이 좋습니다.
- Azure 근접 배치 그룹을 사용하여 대기 시간을 줄입니다.
- Azure Virtual Machine에 대한 네트워크 처리량을 최적화합니다.
- 가상 머신 네트워크 대역폭을 할당합니다.
- 대역폭 및 처리량을 테스트합니다.
- Azure 가상 네트워킹에 대한 자세한 내용은 Azure Virtual Network FAQ를 참조하세요.