arrow_back

네트워크 성능 개선 I

가입 로그인
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

네트워크 성능 개선 I

Lab 45분 universal_currency_alt 크레딧 5개 show_chart 중급
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP045

Google Cloud 사용자 주도형 실습

개요

이 실습에서는 몇 가지 실제 시나리오를 살펴보고 환경을 재현한 후 문제가 있는 네트워크 성능을 개선하는 작업을 수행하게 됩니다.

흥미로운 실습을 위해 문제 해결 사용 사례와 마찬가지로 다양한 인스턴스를 서로 비교해 보겠습니다. 직접 결과를 검증하고 자체 시스템 성능 개선에 사용되는 단계를 익힐 수 있기 때문입니다.

이 실습은 콜트 맥안리스의 블로그 게시물인 Core Count and the Egress problem(코어 수 및 이그레스 문제), Internal IP vs External IP(내부 IP와 외부 IP 비교)의 내용을 각색한 것입니다. 콜트는 Medium 블로그에 Google Cloud 네트워크 성능에 관한 내용을 올리고 있습니다.

목표

  • 오픈소스 도구를 사용해 네트워크 연결과 성능을 테스트하는 방법
  • 오픈소스 도구를 사용해 네트워크 트래픽을 검사하는 방법
  • 머신 크기가 네트워크 성능에 미치는 영향

기본 요건

  • Google Cloud 서비스에 대한 기본 지식(Google Cloud Essentials 과정에서 실습을 진행한 적이 있다면 가장 좋음)
  • Google Cloud 네트워킹 및 TCP/IP에 대한 기본 지식('Networking in the Google Cloud' 퀘스트의 전반부 실습을 진행한 적이 있다면 가장 좋음)
  • 기본 Unix/Linux 명령줄 지식

설정 및 요건

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간---실습을 시작하고 나면 일시중지할 수 없습니다.
참고: 계정에 추가 요금이 발생하지 않도록 하려면 개인용 Google Cloud 계정이나 프로젝트가 이미 있어도 이 실습에서는 사용하지 마세요.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.

    • Google 콘솔 열기 버튼
    • 남은 시간
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보
    • 필요한 경우 실습 진행을 위한 기타 정보
  2. Google 콘솔 열기를 클릭합니다. 실습에서 리소스가 가동된 후 로그인 페이지가 표시된 다른 탭이 열립니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 실습 세부정보 패널에서 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다. 다음을 클릭합니다.

  4. 실습 세부정보 패널에서 비밀번호를 복사하여 시작 대화상자에 붙여넣습니다. 다음을 클릭합니다.

    중요: 왼쪽 패널에 표시된 사용자 인증 정보를 사용해야 합니다. Google Cloud Skills Boost 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  5. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
    • 무료 평가판을 신청하지 않습니다.

잠시 후 Cloud 콘솔이 이 탭에서 열립니다.

참고: 왼쪽 상단에 있는 탐색 메뉴를 클릭하면 Google Cloud 제품 및 서비스 목록이 있는 메뉴를 볼 수 있습니다. 탐색 메뉴 아이콘

이 실습의 목표는 코어 크기와 처리량 사이의 관계를 보여주는 것이므로 6가지 인스턴스가 이미 탑재된 상태로 실습이 제공됩니다. 이 인스턴스는 실습을 시작할 때부터 생성되어 있습니다.

  • Cloud 콘솔에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동하여 인스턴스를 확인합니다.

6가지 인스턴스와 세부정보가 테이블 형식으로 나열되어 있는 VM 인스턴스 페이지

참고: 실제 사용 환경의 인스턴스 리전과 영역은 스크린샷에 나온 것과 다를 수 있습니다.

연결 테스트

정상적으로 작동하는지 확인하기 위해 간단한 연결 테스트를 실행합니다.

  1. 콘솔에서 이름 옆에 있는 SSH 버튼을 클릭하여 SSH를 통해 instance-1에 연결합니다.

  2. 새로운 셸 창에서 다른 인스턴스 중 하나를 핑하고, 다음 명령어를 실행하여 <external ip address of instance-2>instance-2 외부 IP 주소로 바꿉니다.

ping -c 5 <external ip address of instance-2>

출력 예:

student-00-aafd1bd9c185@instance-1:~$ ping -c 5 35.194.158.169 PING 35.194.158.169 (35.194.158.169) 56(84) bytes of data. 64 bytes from 35.194.158.169: icmp_seq=1 ttl=76 time=1.89 ms 64 bytes from 35.194.158.169: icmp_seq=2 ttl=76 time=0.409 ms 64 bytes from 35.194.158.169: icmp_seq=3 ttl=76 time=0.542 ms 64 bytes from 35.194.158.169: icmp_seq=4 ttl=76 time=0.557 ms 64 bytes from 35.194.158.169: icmp_seq=5 ttl=76 time=0.559 ms --- 35.194.158.169 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.409/0.792/1.894/0.554 ms
  1. 또 다른 인스턴스를 핑합니다. <external ip address of instance-3>instance-3의 외부 IP 주소로 바꾸고 ping을 실행합니다.
ping -c 5 <external ip address of instance-3>

출력 예:

student-00-aafd1bd9c185@instance-1:~$ ping -c 5 35.194.187.75 PING 35.194.187.75 (35.194.187.75) 56(84) bytes of data. 64 bytes from 35.194.187.75: icmp_seq=1 ttl=64 time=1.59 ms 64 bytes from 35.194.187.75: icmp_seq=2 ttl=64 time=0.336 ms 64 bytes from 35.194.187.75: icmp_seq=3 ttl=64 time=0.338 ms 64 bytes from 35.194.187.75: icmp_seq=4 ttl=64 time=0.302 ms 64 bytes from 35.194.187.75: icmp_seq=5 ttl=64 time=0.270 ms --- 35.194.187.75 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3999ms rtt min/avg/max/mdev = 0.270/0.568/1.596/0.514 ms

이상이 없으면 계속 진행하세요.

방화벽 규칙 검토

이 실습을 위한 방화벽 규칙도 생성되어 있습니다.

  • 규칙을 확인하려면 탐색 메뉴 > 네트워킹 > VPC 네트워크 > 방화벽으로 이동한 후 iperftesting 방화벽을 클릭하세요.

방화벽 규칙인 iperftesting은 다음과 같은 구성을 사용합니다.

필드 설명
이름 iperftesting 새 규칙 이름
대상 네트워크의 모든 인스턴스
소스 IP 범위 0.0.0.0/0 인터넷의 모든 IP 주소에 대한 방화벽을 엽니다.
프로토콜 및 포트 tcp:5001, udp:5001
트래픽 방향 인그레스
일치 시 작업 허용

실습을 시작할 준비가 되었습니다.

사용 사례 1: 네트워킹 및 Compute Engine 코어 수

이 첫 번째 시나리오에서는 사용하는 머신의 크기가 측정 가능한 처리량에 어떤 영향을 주는지 살펴볼 수 있습니다.

Dobermanifesto는 반려동물에 특화된 동영상 마이크로블로그 네트워크입니다. 전 세계에서 시청하고 경험할 수 있도록 동물을 주제로 한 동영상을 업로드하여 어디든 전송할 수 있습니다.

그러나 Compute Engine 백엔드와 데이터를 주고받는 동안 관측된 대역폭은 기대만큼 높지 않았습니다.

선 그래프: Dobermanifesto 동일 영역 처리량(초당 Gbit 단위로 측정)

작업 1. 동작 재현

이 동작을 시도하고 재현하기 위해 동일한 영역에 인스턴스를 2개 생성하고 그 사이에 iperf를 100회 실행했습니다.

선 그래프: 동일 영역 내 전송 100회 실행(초당 Mbit 단위로 측정)

성능이 훨씬 더 나빠졌습니다. 테스트에 문제가 있는 것이 분명하므로 회사에서 더 자세한 정보와 더 심층적인 재현 단계를 제공받아야 합니다.

이제 시나리오를 설정하겠습니다.

Dobermanifesto의 환경

  1. Compute Engine 콘솔의 VM 인스턴스 목록으로 돌아갑니다.

  2. SSH를 통해 instance-1(1vCPU 3.75GB)에 연결하고 다음 명령어를 실행해 iperf '수신자'를 설정합니다.

iperf -s
  1. 그런 다음 SSH를 통해 instance-2(1vCPU 3.75GB)에 연결하고 instance-1을 가리키는 iperf 트래픽을 생성합니다.
iperf -c <external ip address of instance-1>

출력 예:

student-00-aafd1bd9c185@instance-2:~$ iperf -c 35.225.180.44 ------------------------------------------------------------ Client connecting to 35.225.180.44, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.20.0.4 port 56330 connected with 35.225.180.44 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0000-10.0010 sec 4.66 GBytes 4.00 Gbits/sec
  1. instance-1로 돌아가 Ctrl + C를 입력하여 수신자를 종료합니다.

테스트 환경

  1. Compute Engine 콘솔로 돌아가 다른 SSH 창을 열어 instance-6(1vCPU e2-micro .6GB)을 연결합니다.

  2. 다음 명령어를 실행해 '수신자'로 설정합니다.

iperf -s

출력 예:

student-00-aafd1bd9c185@instance-6:~$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------
  1. instance-2 SSH 창에서 instance-6에 대한 연결을 테스트합니다.
iperf -c <internal ip address of instance-6>

출력 예:

student-00-aafd1bd9c185@instance-2:~$ iperf -c 10.40.0.7 ------------------------------------------------------------ Client connecting to 10.40.0.7, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.40.0.5 port 54029 connected with 10.40.0.7 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 2.29 GBytes 1.96 Gbits/sec
  1. instance-6으로 돌아가 Ctrl + C를 입력하여 수신자를 종료합니다.

어떻게 되었을까요? 대역폭이 향상된 것으로 보입니다. 실제로 이 사례와 같은 상황이 발생한 것일 수도 있고 대역폭이 더 낮았을 수도 있습니다.

다음 섹션에서는 총 코어 수에 따라 대역폭이 어떻게 제한되는지 살펴봅니다. 그리고 코어 수가 이렇게 작은 범위(코어 1개)에서는 대역폭이 결코 2Gbit/초 정도를 초과하지 않는다는 사실을 확인할 수 있습니다. 결과적으로 네트워크 속도는 느려지고 대역폭은 제한되며 Dobermanifesto가 경험했던 것과 비슷한 상황이 발생합니다. 곧 이어질 테스트에서 4개의 CPU 머신을 사용하면 더 우수한 결과를 얻을 수 있습니다.

코어 수와 속도(Gb/초)의 상관관계

결과에 큰 차이가 없었던 이유는 무엇일까요? Compute Engine 문서에 따르면 그 이유는 다음과 같습니다.

가상 머신의 아웃바운드 트래픽 또는 이그레스 트래픽에는 최대 네트워크 이그레스 처리량 한도가 적용됩니다. 이 한도는 가상 머신 인스턴스의 vCPU 개수에 따라 달라집니다. 각 코어의 최대 성능에는 2Gbit/초(Gbps)의 한도가 적용됩니다. 코어를 추가할 때마다 네트워크 한도가 늘어나며 이론적으로는 각 가상 머신별로 최대 16Gbps까지 가능합니다.

즉 네트워크에 가상 CPU가 많을수록 네트워킹 처리량도 늘어납니다.

실제는 어떤지 알아보기 위해 동일한 영역에 서로 다른 코어 크기 그룹을 설정하고 그 사이에서 iperf를 1,000회 실행했습니다.

막대 그래프: 인스턴스 유형별 RCP 처리량, 1,000회, 평균 및 최대치 사이의 차이 표시

코어 수가 많을수록 평균 및 최대 처리량도 높아집니다. 이 간단한 테스트를 통해서도 더 높은 사양의 머신에 엄격한 16Gbps 한도가 적용되는 것을 알 수 있습니다.

참고: 여러 개의 스레드(약 8개 전후)를 사용해 iperf를 실행하는 경우 10Gbps를 넘을 수 있고, e2-standard-16 이상을 사용하면 약 16Gbps까지 속도를 높일 수 있습니다. 이 실습 환경에서는 해당 크기의 머신이 없지만 다음 실습에서 여러 개의 스레드를 사용해 테스트해 보겠습니다. 고대역폭 등급 1 구성을 선택하고 50~100Gbps에 도달할 수 있는 더 높은 비용의 N2, N2D, C2, C2D 시리즈 VM도 있습니다.

작업 2. 결과를 개선하는 방법

Dobermanifesto에 있는 네트워크는 1vCPU 머신을 사용합니다. 코어 크기가 클수록 Dobermanifesto에서 더 나은 성능을 얻는 데 도움이 된다는 이론이 맞는지 테스트해 보겠습니다.

  1. SSH를 통해 instance-3(4vCPU 15GB 메모리)을 연결하고 다음 명령어를 실행합니다.
iperf -s

출력 예:

student-00-aafd1bd9c185@instance-3:~$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------
  1. SSH를 통해 instance-4(4vCPU 15GB 메모리)에 연결하려면 다음 명령어를 실행합니다.
iperf -c <internal ip address of instance-3>

출력 예:

student-00-aafd1bd9c185@instance-4:~$ iperf -c 10.40.0.2 ------------------------------------------------------------ Client connecting to 10.40.0.2, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.40.0.4 port 54081 connected with 10.40.0.2 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 8.93 GBytes 7.67 Gbits/sec
  1. 이제 스레드 4개를 사용해 다시 시도해 봅니다.
iperf -c <internal ip address of instance-3> -P4
  1. 이번에는 스레드 8개를 사용해 보세요.
iperf -c <internal ip address of instance-3> -P8
  1. instance-3으로 돌아가 Ctrl + C를 입력하여 수신자를 종료합니다.

이 실험에서는 서버와 클라이언트 모두 4vCPU를 사용했으며 속도가 크게 향상되었습니다. 전송 속도는 6.64GB만큼, 대역폭은 초당 5.71Gbit/초만큼 증가했습니다. 스레드를 여러 개 사용할 때 코어 수에 해당하는 최대한도의 성능에 도달할 수 있었습니다.

  1. 계속해서 성능이 더 높은 4vCPU 머신(인스턴스 유형: 'highcpu-4')인 instance-5로 테스트해 보겠습니다.

이 인스턴스 유형은 CPU는 더 빠르지만 메모리는 적습니다. 스레드가 많아질 때 차이가 느껴지나요?

이제 Dobermanifesto팀은 어떤 경로를 택할지 결정해야 합니다. CPU 사용량을 프로파일링하고 가격 정보를 살펴본 후 평균 처리량이 4배 가까이 높으면서도 e2-standard-8 머신보다 더 저렴한 e2-standard-4 머신을 사용하기로 결정했습니다.

크기가 더 큰 머신으로 이전할 때 장점 중 하나는 실행 빈도가 줄어든다는 점입니다. 데이터 전송만을 위해 머신이 작동 상태로 상당 시간을 소비한 것으로 나타났습니다. 머신 크기가 달라지면서 인스턴스의 다운타임이 증가하여 부하 분산기가 매일 실행하는 총 인스턴스 수를 줄일 수 있었습니다. 결국 등급이 더 높은 머신을 구매할 수밖에 없었으나 다른 한편으로는 월별 코어 시간이 더 줄어들었습니다.

성능이 성과에 직접 영향을 미칠 때는 잘 고려해서 섬세하게 절충해야 할 부분이 많습니다.

사용 사례 2: 내부 IP를 사용한 Google Cloud 네트워킹

이 다음 예시에서는 iperf를 사용하여 처리량 속도를 테스트합니다. 머신 하나를 서버로 설정한 다음 다른 머신을 가리키고 결과를 비교합니다.

Gecko Protocol은 게임 및 기타 실시간 그래픽 시스템을 위한 커스텀 경량 네트워킹 프로토콜을 제공하는 B2B 기업입니다. 이 기업은 대규모 동영상 및 그래픽 파일을 전송하고 트랜스코딩하는 백엔드 머신의 처리량이 예상보다 낮은 것을 발견했습니다.

Gecko Protocol에서 실시한 기본 iperf 테스트 결과는 다음과 같습니다.

------------------------------------------------------------ Client connecting to 104.155.145.79, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.128.0.3 port 53504 connected with 104.155.145.79 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.03 GBytes 884 Mbits/sec

테스트를 다시 실행했을 때 네트워크 설정은 동일했는데도 테스트 결과가 매우 달랐습니다.

student-00-aafd1bd9c185@instance-2:~$ iperf -c 10.128.0.2 ------------------------------------------------------------ Client connecting to 10.128.0.2, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.128.0.3 port 38978 connected with 10.128.0.2 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 2.27 GBytes 1.95 Gbits/sec

초당 1.95GB는 Gecko Protocol의 그래프에 표시된 것보다 훨씬 높은 수치였습니다. 어떻게 된 걸까요?

이 시나리오를 재현해 보겠습니다.

  1. 콘솔에서 SSH를 통해 instance-1에 연결하고 iperf 수신자를 설정합니다.
iperf -s

출력 예:

student-00-aafd1bd9c185@instance-1:~$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------
  1. SSH를 통해 instance-2에 연결하고 외부 IP 주소의 연결을 확인합니다.
iperf -c <external ip address of instance-1>

출력 예:

student-00-aafd1bd9c185@instance-2:~$ iperf -c 35.201.145.135 ------------------------------------------------------------ Client connecting to 35.201.145.135, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.40.0.8 port 58691 connected with 35.201.145.135 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.36 GBytes 1.16 Gbits/sec

심층 논의 끝에 Gecko Protocol에서 머신 연결에는 외부 IP를 사용하고 테스트에는 내부 IP를 사용했다는 사실을 확인했습니다. 머신이 네트워크에 있는 경우 내부 IP로 연결하면 처리량 속도가 더 높아집니다.

  1. 이제 내부 주소와의 연결을 확인합니다.
iperf -c <internal ip address of instance-1>

출력 예:

student-00-aafd1bd9c185@instance-2:~$ iperf -c 10.40.0.5 ------------------------------------------------------------ Client connecting to 10.40.0.5, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.40.0.8 port 42950 connected with 10.40.0.5 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 2.26 GBytes 1.94 Gbits/sec

두 가지 서로 다른 전송 및 대역폭 속도를 살펴보겠습니다. 이 예시에서는 내부 IP 주소로 변경할 때 전송 속도는 0.9GB만큼 향상되고 대역폭은 0.78Gbit/초만큼 향상되었습니다. 이처럼 내부 연결 시 속도가 더 빠르다는 것이 입증되었습니다.

Dobermanifesto 문제를 해결하면서 얻은 지식에 비추어 볼 때 크기가 더 큰 머신을 사용하면 네트워크 속도를 개선할 수 있을까요? instance-2는 1vCPU에 불과하므로 조금 더 큰 머신을 사용하면 연결 속도가 얼마나 빨라질까요? 훨씬 더 큰 머신은 또 어떨까요? 계속해서 내부 IP 주소를 사용한 테스트를 수행해 보겠습니다. 시간적 여유가 있다면 외부 IP 주소를 사용한 테스트도 진행해 보세요.

vCPU 머신 4개

  • SSH를 통해 instance-3에 연결하고 내부 IP 주소와의 연결을 테스트합니다.
iperf -c <internal ip address of instance-1>

출력 예(결과에 차이가 있을 수 있음):

student-00-aafd1bd9c185@instance-3:~$ iperf -c 10.40.0.5 ------------------------------------------------------------ Client connecting to 10.40.0.5, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.40.0.6 port 39115 connected with 10.40.0.5 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 4.53 GBytes 3.89 Gbits/sec

높은 CPU 머신 4개

  • SSH를 통해 instance-5에 연결하고 내부 IP 주소와의 연결을 테스트합니다.
iperf -c <internal ip address of instance-1>

출력 예:

student-00-aafd1bd9c185@instance-5:~$ iperf -c 10.40.0.5 ------------------------------------------------------------ Client connecting to 10.40.0.5, TCP port 5001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.40.0.3 port 39736 connected with 10.40.0.5 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 10.3 GBytes 8.84 Gbits/sec

실행 결과 처리량 속도가 현저히 높아집니다.

Gecko Protocol에서는 어떤 크기의 코어가 가장 적합한지도 고려해야 할 것으로 보입니다. 이 간단한 디버깅 세션으로 동영상 및 그래픽 데이터 전송 속도가 약 14배 증가했습니다. 이 기업의 서비스가 고성능 컴퓨팅 시나리오를 위한 성능 백엔드 서비스를 기반으로 한다는 사실을 고려하면 엄청난 변화입니다.

작업 3. 사용자 환경 테스트

자체 시스템을 테스트하는 방법은 이 실습에서 다루지 않지만 참고할 수 있는 추가 정보가 있습니다. 자체 네트워크 테스트에 관한 자세한 내용은 Diagnosing Network Speed with Iperf(Iperf를 사용한 네트워크 속도 진단)을 참조하세요.

시간적 여유가 있다면 테스트용으로 VM을 설정하는 것도 좋습니다. VM을 생성할 때는 'iperftest' 방화벽 규칙과 태그를 사용해야 합니다. 내부 IP 주소와 외부 IP 주소를 모두 테스트하세요.

자체 네트워크 속도 테스트를 위한 설정

  1. 콘솔에서 탐색 메뉴 > 네트워킹 > VPC 네트워크 > 방화벽으로 이동합니다.

  2. 방화벽 규칙 만들기를 클릭합니다. 방화벽 규칙을 만들려면 다음 구성을 사용하세요.

필드 설명
이름 iperf-testing 새 규칙 이름
대상 네트워크의 모든 인스턴스
소스 IP 범위 0.0.0.0/0 인터넷의 모든 IP 주소에 대한 방화벽을 엽니다.
트래픽 방향 인그레스
일치 시 작업 허용
프로토콜 및 포트 tcp:5001, udp:5001
  1. 만들기를 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 방화벽 규칙 만들기

워크로드는 최대한 100%에 가깝게 유지하여 디스크 조각 모음 등을 위한 공간을 남기지 않으려는 경향이 있습니다.

사용률이 건전하면 90~93%이지만 98%가 되면 결국 경합이 많이 발생하므로 성능이 저하됩니다.

테스트할 때 입출력 성능이 저하된다면 제한 카운터를 살펴보세요. 제한되고 있지 않다면 CPU 사용률을 확인하세요. CPU 사용률이 높다면 문제가 있는 것입니다.

작업 4. 시간적 여유가 있는 경우

실습 인터페이스의 왼쪽 '학생 리소스'에 이 실습과 관련된 동영상 링크가 있습니다. 유용한 동영상이니 꼭 시청해 보세요.

Compute Engine과 이그레스 문제, 내부 IP와 외부 IP 성능 비교에 관한 링크가 있는 학생 리소스 섹션

수고하셨습니다

수고하셨습니다. 이 실습에서는 오픈소스 도구를 사용해 네트워크 연결과 성능을 테스트하는 방법, 머신 크기가 네트워크 성능에 미치는 영향을 알아보았습니다.

다음 단계/더 학습하기

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2023년 10월 4일

실습 최종 테스트: 2023년 10월 4일

Copyright 2024 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.