CPU vs vCPU

Younghwan Cha·2024년 2월 13일
0

aws

목록 보기
2/3

CPU 랑 뭐가 달라..?

vCPU 를 보고 처음 든 생각이다. v 가 붙어있으니까 가상 cpu 일 것으로 보여지지만, 찝찝한 마음에 조금 더 찾아보기로 했다.

CPU 를 효율적으로 사용하기

CPU 를 효율적으로 사용하기 위한 다양한 시도들이 존재했다.
하이퍼스레딩 기술을 사용하여 각 코어에서 둘 이상의 스레드 실행이 가능해졌으며,
멀티 코어 프로세서들이 생겨나기 시작했다. vCPU 도 이렇게 cpu 를 효율적으로 사용하려는 노력에서 비롯되었다.
vCPU 란, CPU 에 존재하는 코어들을 하이퍼바이저를 통해서 논리적으로 분리한 cpu 이다. 하이퍼스레딩 등의 기술을 사용해 구현된 논리적 단위, 즉 스레드 로 보는 것이 더 정확 할 것 같다.
따라서 2vCPU 가 제공되는 인스턴스는 실제로 하나의 물리적 코어가 두개의 스레드로 작동하는 구성을 갖고 있는 것이다.

하이퍼바이저?
가상 머신의 생성 및 관리를 처리하는 역할을 수행한다

T2 & T3

AWS의 T2 및 T3 인스턴스는 항상 100% 실행될 필요가 없는 애플리케이션에 더 적합한 버스터블 인스턴스입니다.

예를 들어 t3.micro 인스턴스에는 2개의 vCPU가 있지만 기본 속도는 일반 vCPU의 10%입니다. 실제로 t3.micro에는 vCPU가 0.2개뿐입니다. 실제로 Google Cloud Platform이 f1-micro 인스턴스를 광고하는 방식입니다.

하지만 t3.micro는 전체적으로 90%만 느린 것이 아닙니다. 터보 주파수가 일반 컴퓨터에서 작동하는 방식과 매우 유사하게 짧은 시간 동안 기본 속도 이상으로 버스트할 수 있습니다. 여기서 제한 요소는 발열이 아니라 지불할 용의가 있는 금액입니다.

인스턴스가 기본 속도 이하로 실행되는 시간마다 1분 동안 인스턴스를 버스트하는 데 사용되는 CPU 크레딧이 누적됩니다. 특히 t3.micro 인스턴스는 기본 속도 이하로 실행되는 시간당 6개의 CPU 크레딧을 축적합니다. 그러나 처리 능력이 필요할 때 기본 속도 이상으로 실행하기 위해 CPU 크레딧이 소비됩니다.

이는 요청이 발생할 때 응답해야 하지만 다음 사용자가 무언가를 요청할 때까지 유휴 상태를 유지해야 하는 마이크로 서비스 기반 애플리케이션에 매우 적합합니다. 항상 숫자를 처리해야 하는 서비스는 기존 서버에 더 적합합니다.

vCPU 란?

AWS instance

aws instance 를 보며 위의 내용들을 정리해보자. 실제로 표를 보면 vCPU 와 CPU 의 비율이 2:1 인 경우와 1:1 인 경우가 존재한다. 이는 vCPU 를 실제 1개의 코어와 1개 코어의 1개 스레드 중 어떤 것에 매칭시키는지에 따라 달라진다.

profile
개발 기록

0개의 댓글