VPN 연결에서 대역폭이 낮습니다. 문제가 Amazon Virtual Private Cloud(Amazon VPC) 내부에서 일어나는 것이 아님을 확인하려면 어떤 테스트를 실행해야 합니까?
해결 방법
테스트를 위해 Linux를 실행하는 EC2 인스턴스 두 개 시작하기
성능 테스트를 시작하기 전에 동일한 VPC에 있는 두 개 이상의 가용 영역에서 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스를 시작합니다. 이 인스턴스를 네트워크 성능 테스트에 사용합니다. 인스턴스가 Linux용으로 향상된 네트워킹을 지원하는지 확인합니다.
참고: 동일한 배치 그룹에 공존하지 않는 인스턴스 또는 점보 프레임을 지원하지 않는 인스턴스 간에 네트워크 테스트를 수행하는 경우 Linux 인스턴스에서 MTU를 확인 및 설정합니다.
그런 다음 SSH를 통해 인스턴스에 연결할 수 있는지 확인합니다. 마지막으로, iperf3에서 사용하는 포트를 통해 통신을 허용하도록 인스턴스에서 사용하는 보안 그룹을 구성합니다. TCP 성능 테스트용 기본 포트는 5201입니다.
참고: -p를 사용하여 iperf3가 원하는 포트를 사용하도록 구성할 수 있습니다.
두 인스턴스에 모두 iperf3 네트워크 벤치마크 도구를 설치합니다.
터미널 세션을 사용해 Linux 인스턴스에 연결한 다음, iperf3을 설치합니다.
RHEL 기반 Linux 호스트에 iperf3을 설치하려면 다음을 따르십시오.
$ sudo yum install iperf3
Debian/Ubuntu 호스트에 iperf3 설치 방법:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git gcc make
$ git clone https://github.com/esnet/iperf3
$ cd iperf3
$ ./configure
$ sudo make
$ sudo make install
# optionally run "make clean" to free up disk space
# by removing artifacts in the build tree.
$ sudo make clean
$ sudo ldconfig
그런 다음, 다음 명령을 실행하여 인스턴스 한 개를 기본 포트에서 수신할 서버로 구성합니다.
$ sudo iperf3 -s -V
iperf3을 사용하여 네트워크 테스트 실행하기
온프레미스 호스트를 클라이언트로 구성한 다음 사용자 인스턴스에 대해 다음 테스트 중 한 가지 이상을 실행합니다.
다음 명령의 출력은 TCP 연결당 창 크기가 커지는 병렬 스트림 20개의 결과를 표시합니다.
sudo iperf3 -c <Private/public IP of instance> -P 20 -w 128K -V
sudo iperf3 -c <Private/public IP of instance> -P 20 -w 512K -V
sudo iperf3 -c <Private/public IP of instance> -P 20 -w 1024K -V
다음 명령의 출력은 대역폭 용량 증가 결과와, UDP 연결당 30초의 시간 프레임을 표시합니다.
iperf3 -c <Private/public IP of EC2 instance> -u -b 200M -t 30
iperf3 -c <Private/public IP of EC2 instance> -u -b 500M -t 30
iperf3 -c <Private/public IP of EC2 instance> -u -b 1G -t 30
EC2 인스턴스의 프라이빗 IP 주소와 온프레미스 호스트 간 iperf3 테스트를 쌍방향으로 실행하여 VPN 연결의 네트워크 처리량을 벤치마킹합니다. 그런 다음 인스턴스의 두 퍼블릭 IP 주소 사이 간에 이러한 테스트를 실행하여 인터넷을 통한 처리량을 벤치마킹합니다.
참고:-w 옵션은 창 크기를 나타냅니다.
이 크기는 양쪽의 커널 파라미터 net.core.rmem_max 및 net.core.wmem_max보다 작아야 합니다.
시스템 빌드에 따라 rmem_max 또는 wmem_max는 기본적으로 512KB보다 작을 수 있습니다.
기본적으로 512KB보다 작으면 iperf 테스트 전에 양쪽의 rmem_max 및 wmem_max를 늘립니다.
예:
현재 rmrm_max 및 wmem_max 값을 확인합니다.
$ sudo sysctl net.core.rmem_max
net.core.rmem_max = 212992
$ sudo sysctl net.core.wmem_max
net.core.wmem_max = 212992
창 크기를 2,048KB로 늘립니다.
$ sudo sysctl -w net.core.rmem_max=2097152
$ sudo sysctl -w net.core.wmem_max=2097152
관련 정보
동일한 VPC에 있는 Amazon EC2 Linux 인스턴스 간의 네트워크 처리량을 벤치마크하려면 어떻게 해야 하나요?