본문 바로가기

클라우드/클라우드(Public Cloud)

클라우드 GCP network performance testing

# Deployment Manager

https://cloud.google.com/deployment-manager/docs

 

Google Cloud Deployment Manager 문서

이 인프라 배포 서비스를 사용하여 Google Cloud Platform 리소스 만들기 및 관리를 자동화합니다.

cloud.google.com

 

Google Cloud Deployment Manager는 Google Cloud 리소스 만들기 및 관리를 자동화하는 인프라 배포 서비스이다. 유연한 템플릿과 구성 파일을 작성하여 Cloud Storage, Compute Engine, Cloud SQL를 비롯해 서로 연동되도록 구성된 다양한 Google Cloud 서비스가 포함된 배포를 만든다.

 

버킷에 저장해둔 deploy 소스를 다운받는다.

 

압축풀기

 

 

 

# 배포

 

 

# 확인

타이완 (asia-east1)

벨기에 (europe-west1)

오리건 (us-west1)

사우스캐롤라이나 (us-east1)

 

 

# ping 통신확인

 

 

# 대륙간의 delay 지연 시간 파악  : ping

 

미국 VM(오리건)-------------------------유럽 VM (벨기에)   →  89

  e1-vm eu1-vm



미국 VM(오리건) -------------------------아시아 VM (타이완)   ->  181

   e1-vm asia1-vm



intance SSH 접속 $  ping   [external IP address]

[Internal IP address]

[FQDN]

hostname.

 

  • 내부 DNS

FQDN(정규화된 도메인 이름) : hostName.[zone].c.[projectID].internal

 

미국 동부 지역에서 유럽 서부 지역까지 대기시간

e1-vm$ ping eu1-vm.europe-west1-d (또는 internal IP)



@e1-vm:~$ ping  eu1-vm.europe-west1-d

PING eu1-vm.europe-west1-d.c.nobreakclass03.internal (10.30.0.2) 56(84) byt

es of data.

64 bytes from eu1-vm.europe-west1-d.c.nobreakclass03.internal (10.30.0.2):

icmp_seq=1 ttl=64 time=89.2 ms

64 bytes from eu1-vm.europe-west1-d.c.nobreakclass03.internal (10.30.0.2):

icmp_seq=2 ttl=64 time=89.3 ms

64 bytes from eu1-vm.europe-west1-d.c.nobreakclass03.internal (10.30.0.2):

icmp_seq=3 ttl=64 time=89.2 ms

64 bytes from eu1-vm.europe-west1-d.c.nobreakclass03.internal (10.30.0.2):

icmp_seq=4 ttl=64 time=89.1 ms

^C

--- eu1-vm.europe-west1-d.c.nobreakclass03.internal ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3004ms

rtt min/avg/max/mdev = 89.179/89.240/89.348/0.305 ms



유럽(벨기에) VM  FQDN : eu1-vm.europe-west1-d.c.nobreakclass03.internal

 

@e1-vm:~$ ping asia1-vm.asia-east1-b

PING asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2) 56(84) byt

es of data.

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=1 ttl=64 time=177 ms

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=2 ttl=64 time=182 ms

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=3 ttl=64 time=182 ms

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=4 ttl=64 time=182 ms

^C

--- asia1-vm.asia-east1-b.c.nobreakclass03.internal ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3005ms

rtt min/avg/max/mdev = 177.417/181.458/182.843/2.352 ms



유럽 eu1-vm  에서  아시아 asia1-vm으로 ping test  -> RTT ??

 

@eu1-vm:~$ ping asia1-vm.asia-east1-b

PING asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2) 56(84) byt

es of data.

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=1 ttl=64 time=251 ms

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=2 ttl=64 time=249 ms

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=3 ttl=64 time=249 ms

64 bytes from asia1-vm.asia-east1-b.c.nobreakclass03.internal (10.40.0.2):

icmp_seq=4 ttl=64 time=249 ms

^C

--- asia1-vm.asia-east1-b.c.nobreakclass03.internal ping statistics ---

5 packets transmitted, 4 received, 20% packet loss, time 4006ms

rtt min/avg/max/mdev = 249.438/249.990/251.484/1.058 ms




https://cloud.google.com/solutions/best-practices-compute-engine-region-selection/?hl=ko#region-latency

 

서브마린

https://www.submarinenetworks.com/en/insights/complete-list-of-google-s-subsea-cable-investments



EU와 아시아 위치 간의 지연 시간이 매우 김.

현재 Compute Engine에는 유럽과 아시아 간의 사용할 수 있는 직접 링크가 없음.

네트워크 관점에서 하나의 글로벌 위치만 사용하여 서비스를 실행하는 경우, 해당 위치를 미국 중부에 두는 것이 좋음.






 

# MTR 유틸을 이용해서 네트워크 진단 : ping + traceroute



iperf (server/client) 성능 테스트

$ mtr www.icann.org   대화형 명령어로 가능함.

 

$ mtr www.icann.org --report

 

saria2018sylim@eu1-vm:~$ mtr www.google.co.kr --report

Start: Thu Aug 26 08:24:03 2021

HOST: eu1-vm                      Loss%   Snt   Last   Avg  Best  Wrst StDe

v

 1.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.

0

 2.|-- 108.170.235.32             0.0%    10    0.6   9.1   0.6  38.8  15.

5

 3.|-- 108.170.231.184            0.0%    10    1.7   1.6   0.7   2.3   0.

3

 4.|-- 209.85.142.243             0.0%    10    1.6   2.1   1.2   4.9   0.

9

 5.|-- 209.85.243.79              0.0%    10    2.6   2.5   1.9   3.3   0.

0

 6.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.

0

 

결과

  • Host : 목적지까지 거쳐가는 게이트웨이어 IP
  • Loss : 손실율
  • Snt : ping을 보낸 수(누적)
  • Last : ping 최근 응답시간
  • Avg : ping 평균 응답시간
  • Best : ping 중 제일 빠른 응답시간
  • Wrst : ping 중 최악 응답시간
  • StDev : 표준편차
  • H : 설명, D:디스플레이모드, R: 통계 재시작, O:정렬 필드 선택, q:종료



성능 테스트 iperf

server / client

 

system1 system2

eu1-vm e1-vm

 iperf -s 서버

대기 iperf -c [eu1-vm정보]

tcp 세션 맺어 데이터 전송

 

\* 주의사항 : 기가 바이트로 전송을함. 이에 따른 인터넷 요금 부가 가능성이 있음.

 

us - asia

eu - asia



instance 머신 유형




tcp 윈도우 사이즈 변경

 Server : iperf -s -w 사이즈

 

UDP 성능 테스트

  server : iperf -s -u

  client : iperf -c -u [servre정보]



  eu1-vm :  iperf -s -u 

  e1-vm :   iperf -c eu1-vm.europe-west1-d -u -b 2G

 

  • 미국 - EU 사이에 다 빠른 속도

 

멀티 쓰레드로 전송하기  (-P 숫자)

 

eu1-vm : iperf -s

e1-vm : iperf -c eu1-vm.europe-west1-d -P 10



패킷  캡쳐 하는 툴 : CLI  -> tcpdump

메뉴얼 페이지

https://www.tcpdump.org/manpages/tcpdump.1.html

 

유럽 : 패킷 캡쳐 시작

sudo tcpdump -c 1000  -i eth0  host 10.20.0.2 

                               not tcp port 22

미국 : 데이터 전송

ping -c 100 시스템IP

 

유럽 ; 패킷 캡쳐 중지 ctrl+c




유럽 ; 웹접속 데이터 캡쳐

sudo apt-get install -y apaceh2

 

유럽 : 패킷캡쳐 시작-저장

sudo tcpdump -i eth0 -c 1000 -s 1460 -w webserver.pcap  tcp tcp 80

 

미국 : curl eu1-vm.europe-west1-d

 

유럽 : 캡쳐 중지 ctrl + c

 

본인 pc로 다운로드 하여 wireshark(무료) 분석



wireshark :GUI 유틸리티.   

  tcpdump  캡쳐한 파일을 저장해서 다운로드 해서 본인 pc에서 확인.



cloudshark  (회원가입) - 보안 이슈가 없는 파일만 볼것.

https://www.cloudshark.org/captures/1a9c284c49b0





@e1-vm:~$ iperf -c  10.30.0.2

------------------------------------------------------------

Client connecting to 10.30.0.2, TCP port 5001

TCP window size: 85.0 KByte (default)

------------------------------------------------------------

[  3] local 10.20.0.2 port 40896 connected with 10.30.0.2 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec   311 MBytes   260 Mbits/sec

@e1-vm:~$ iperf -c 34.78.244.135

------------------------------------------------------------

Client connecting to 34.78.244.135, TCP port 5001

TCP window size: 85.0 KByte (default)

------------------------------------------------------------

[  3] local 10.20.0.2 port 57162 connected with 34.78.244.135 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.1 sec   160 MBytes   134 Mbits/sec