DO 해커톤: 배포 벤치마크

4262 단어 dohackathon
웹사이트가 로드될 때까지 기다리는 것을 좋아하는 사람은 아무도 없으므로 웹사이트를 호스팅하는 동안 성능을 염두에 두는 것이 중요합니다.

이 기사에서는 이 시리즈의 이전 기사에서 두 배포 방법의 성능을 비교합니다.

벤치마크 방법론



최종 사용자가 중요하게 생각하는 대기 시간에만 집중하겠습니다. 토론토 1과 프랑크푸르트 1에 위치한 DigitalOcean 물방울에서 http benchmark tool을 실행하여 다음 스크립트를 실행합니다.

# Kubernetes deployment
echo "GET https://krasnov.dev" | vegeta attack -duration=60s | vegeta report

# App Platform deployment
echo "GET https://denniskrasnov.com" | vegeta attack -duration=60s | vegeta report


결과



토론토 1 -> Kubernetes(토론토 1)



두 리소스는 동일한 리전에 있습니다.

Requests      [total, rate, throughput]         3000, 50.02, 50.01
Duration      [total, attack, wait]             59.983s, 59.98s, 2.885ms
Latencies     [min, mean, 50, 90, 95, 99, max]  1.715ms, 3.944ms, 2.485ms, 3.147ms, 5.321ms, 50.502ms, 144.859ms
Bytes In      [total, mean]                     6348000, 2116.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:3000


토론토 1 -> 앱 플랫폼




Requests      [total, rate, throughput]         3000, 50.02, 50.01
Duration      [total, attack, wait]             59.986s, 59.98s, 5.764ms
Latencies     [min, mean, 50, 90, 95, 99, max]  5.141ms, 9.251ms, 7.443ms, 13.194ms, 17.124ms, 30.828ms, 223.472ms
Bytes In      [total, mean]                     40320000, 13440.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:3000


프랑크푸르트 1 -> Kubernetes(토론토 1)



이것은 멀리 사는 사용자를 나타냅니다.

Requests      [total, rate, throughput]         3000, 50.02, 49.94
Duration      [total, attack, wait]             1m0s, 59.98s, 96.21ms
Latencies     [min, mean, 50, 90, 95, 99, max]  95.502ms, 103.55ms, 96.419ms, 98.411ms, 103.918ms, 344.845ms, 616.864ms
Bytes In      [total, mean]                     6348000, 2116.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:3000


프랑크푸르트 1 -> 앱 플랫폼




Requests      [total, rate, throughput]         3000, 50.02, 50.01
Duration      [total, attack, wait]             59.986s, 59.98s, 6.333ms
Latencies     [min, mean, 50, 90, 95, 99, max]  4.248ms, 9.539ms, 6.037ms, 9.089ms, 11.87ms, 62.803ms, 666.033ms
Bytes In      [total, mean]                     40320000, 13440.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:3000


모든 실행의 평균 대기 시간





쿠버네티스



Kubernetes 클러스터는 한 위치에서 호스팅되도록 설계되었습니다. 이 방법은 로컬에서는 잘 작동하지만 사용자가 멀리 있을 때는 속도가 느립니다.


앱 플랫폼



앱 플랫폼에서의 호스팅은 지리적으로 분산되어 있으며(내장된 CDN 덕분에) 사용자가 어디에 있든 성능이 뛰어납니다.


결론



정적 웹 사이트의 경우 디지털 앱 플랫폼에서 호스팅하는 것이 멀리 있는 사용자에게 더 효과적일 수 있습니다.

좋은 웹페이지 즐겨찾기