OneK-2
article thumbnail
Published 2024. 4. 5. 09:41
AWS 인스턴스 유형 비교 AWS

공통 환경

  • OS: Ubuntu 22.04 LTS
  • 스토리지: 16gb, gp3

비교스펙

  t2.micro t2.small t2.medium t2.large
vCPU 1(1코어) 1(1코어) 2(2코어) 2(2코어)
아키텍처 i386, x86_64 i386, x86_64 i386, x86_64 x86_64
메모리(GiB) 1 2 4 8

 

  t3.micro t3.small t3.medium t3.large
vCPU 2(1코어) 2(1코어) 2(1코어) 2(1코어)
아키텍처 x86_64 x86_64 x86_64 x86_64
메모리(GiB) 1 2 4 8

 

  c5.large c5.xlarge r5.large r5.xlarge
vCPU 2(1코어) 4(2코어) 2(1코어) 4(2코어)
아키텍처 x86_64 x86_64 x86_64 x86_64
메모리(GiB) 4 8 16 32

 

  c6g.medium c6g.large r6g.medium r6g.large m6g.large
vCPU 1(1코어) 2(2코어) 2(1코어) 2(2코어) 2(2코어)
아키텍처 arm64 arm64 arm64 arm64 arm64
메모리(GiB) 1 4 8 16 8

측정방식

  • 파이썬 라이브러리의 math.factorial() 사용
  • 4번의 반복 후 평균값을 사용
import math
import time

times = []
for i in range(4):
start = time.time()
math.factorial(500000)
end = time.time()
times.append(end - start)

avg = sum(times)/4

print(f"{avg:.5f} sec")

 

결과

t2, t3 비교

  • 결과
    • t2와 t3의 연산결과는 서로 비슷한 양상을 보였다.
    • 평균적으로는 t3의 성능이 더 좋았다.
  • 원인
    • 팩토리얼 연산은 CPU 집중적인 작업이지만, T2와 T3 인스턴스 유형 모두 충분한 CPU 성능을 제공한다.
    • 두 인스턴스 유형 모두 동일한 CPU 아키텍처를 사용한다.
    • 사용된 운영 체제 및 버전, 컴파일러 및 컴파일 옵션 등이 동일한 경우 연산 결과는 비슷하게 나타날 가능성이 높다.
  • 고찰
    • 3번 그래프를 봤을 때, 인스턴스가 다시 연결될 때 서버의 상황에 따라 HW의 성능차이로 인해 발생된 현상 같다.
    • T계열의 경우 사용하지 않는 동안 cpu크레딧을 축적하고, 필요한 경우에 사용한다. 이것이 측정 결과에 반영된 것 같다.

t3 c6 비교

  • 결과
    • 범용으로 제작된 t3 인스턴스 유형보다 CPU의 특화된 c5 인스턴스 유형이 연산속도가 더 빨랐다.
  • 원인
    1. CPU 성능:
      • T3 인스턴스 유형은 기본적으로 더 낮은 클럭 속도를 가진 CPU를 사용한다.
      • C5 인스턴스 유형은 고성능 CPU를 사용하여 팩토리얼 연산과 같은 CPU 집중적인 작업에 더 적합하다.
    2. 캐시 용량:
      • C5 인스턴스 유형은 T3 인스턴스 유형보다 더 큰 L2 및 L3 캐시를 가지고 있다.
      • 캐시 용량이 클수록 CPU가 메모리에 접근하는 데 걸리는 시간이 줄어들어 연산 속도가 향상된다.
    3. Turbo Boost:
      • C5 인스턴스 유형은 Turbo Boost 기술을 지원하여 필요에 따라 CPU 클럭 속도를 자동으로 높일 수 있다.
      • 이는 팩토리얼 연산과 같은 짧은 시간 동안 높은 CPU 성능이 필요한 작업에 유용하다.

 

x86_64 & arm64 비교

  • 결과
    • 평균적으로 x86 시스템 아키텍쳐를 사용하는 인스턴스 타입인 c5, r5의 계열이 연산속도가 더 빨랐다.
    • c계열이 r계열보다 더 빨랐다.
  • 원인
    1. 명령어 집합:
      • ARM: RISC (Reduced Instruction Set Computing) 아키텍처를 사용하여 명령어 집합이 단순하다. 이는 전력 소비를 줄이는 데 도움이 되지만, 복잡한 연산을 처리할 때 속도가 느려질 수 있다.
      • x86: CISC (Complex Instruction Set Computing) 아키텍처를 사용하여 명령어 집합이 복잡하다. 이는 전력 소비가 더 높지만, 복잡한 연산을 처리할 때 속도가 빠를 수 있다.
    2. 클럭 속도:
      • 일반적으로 ARM 프로세서는 x86 프로세서보다 클럭 속도가 낮다. 클럭 속도가 높을수록 같은 시간 안에 더 많은 작업을 처리할 수 있으므로 연산 속도가 빨라진다.
    3. 캐시:
      • 캐시는 CPU가 빠르게 접근할 수 있는 작은 메모리 공간이다. 캐시 용량이 클수록 CPU가 메모리에 접근하는 데 걸리는 시간이 줄어들어 연산 속도가 빨라진다.
      • 일반적으로 ARM 프로세서는 x86 프로세서보다 캐시 용량이 작다.
  • 고찰
    • 연산처리가 중요한 팩토리얼 코드로 테스트를 진행하다보니 cpu가 특화된 계열이 더 유리했다.
    • DP같은 메모리 공간을 사용하는 테스트의 경우 r계열이 유리할 것 같다.
profile

OneK-2

@인문학여행

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그