블로그로 돌아가기

저희가 고객님의 자원을 훔치고 있을까요? 클라우드에서의 CPU 스틸 시간 이해하기

저희가 고객님의 자원을 훔치고 있을까요? 클라우드에서의 CPU 스틸 시간 이해하기

고객들은 종종 CPU 스틸 시간(steal time)에 대해 문의합니다. 특히 CPU를 집중적으로 사용하며 이것이 핵심 성능 기준인 고객들이 그렇습니다. 물리적 환경과 가상 환경 간에는 CPU 및 코어의 설정과 동작에 상당한 차이가 있습니다. 클라우드 제공업체 간에도 설정 차이가 존재하여 표면적으로 단순 비교하기가 어렵습니다. 이러한 이유로 당사의 설정 및 CPU 할당 로직에 대한 간략한 개요를 고객에게 제공하고, CPU 스틸 시간의 가장 일반적인 원인을 설명하는 것이 유용할 것이라 생각했습니다.

우선, 이 개념이 생소한 분들을 위해 설명하자면, CPU 스틸 시간은 하이퍼바이저가 다른 작업(예: 다른 가상 머신/클라우드 서버)을 처리하느라 바쁜 동안 클라우드 서버 내의 가상 CPU가 실제 물리적 CPU를 기다려야 하는 시간입니다. 이것은 CPU 스틸 시간에 관한 훌륭한 기사로, 충분히 읽어볼 만한 가치가 있습니다.

당사의 CPU 설정에 관한 간단한 정보

가장 먼저 이해해야 할 점은 귀하의 컴퓨팅을 호스팅하는 각 물리적 컴퓨팅 노드에서 가상 머신 간에 코어를 할당하는 방식과 관련이 있습니다. CloudSigma의 CPU 및 코어는 공유됩니다. 즉, 당사는 고객 클라우드 서버를 특정 코어에 고정하지 않습니다. CPU 시간은 물리적 컴퓨팅 노드의 스케줄러에 의해 동적으로 할당되며 모든 것이 공유됩니다. 당사는 컴퓨팅 노드가 부하 균형을 맞추기 위해 즉석에서 합리적인 할당 조정을 수행할 수 있도록 함으로써 전반적으로 더 안정적인 성능을 제공하는 데 많은 이점이 있다고 믿습니다.

이와 결합하여, 당사는 Control Groups (줄여서 cgroups)를 사용하여 서버 크기를 통해 설정한 리소스에 맞춰 각 클라우드 서버에 충분한 CPU 시간을 보장합니다. 결국 스케줄러는 남은 리소스와 cgroups를 어떻게 처리할지 결정합니다. 또한 고객 컴퓨팅 워크로드 할당 범위 외부에 특정 코어 세트를 예약해 둔다는 점도 주목할 만합니다. 당사는 이 코어들을 사용하여 물리적 호스트의 운영 체제를 실행합니다. 특히 네트워크 및 스토리지 작업 처리를 위해 추가 코어를 예약해 둡니다. 이 모든 것은 전반적인 장비의 안정성을 높이는 것을 목표로 합니다. 나아가, 이는 다른 고객의 부하와 관계없이 고객에게 지속적으로 안정적인 성능 수준을 제공하는 데 도움이 됩니다.

가상화 환경에서 CPU 스틸 시간의 원인

물리적 환경과 달리, CPU 스틸 시간을 경험할 수 있는 원인과 상황은 여러 가지가 있습니다. 이는 멀티테넌트 가상화 환경에서 상황이 더 복잡하기 때문입니다. 이 모든 상황이 실제로 받아야 할 CPU 시간을 받지 못하고 있는 상황을 의미하는 것은 아닙니다. 사실 많은 경우 할당된 크기를 초과하여 여유 CPU 사이클을 흡수할 수 있지만, 이는 CPU 스틸 시간이 발생하는 상황이 아닙니다. 가장 일반적인 세 가지 상황은 아래에서 더 자세히 설명합니다.

클라우드 서버가 과부하 상태입니다
그런 일은 일어납니다! 누구나 지불한 만큼 최대한의 용량을 사용하고 싶어 하지만, 가상 클라우드 서버에 할당된 CPU가 워크로드를 처리하기에 충분하지 않은 경우 가상 CPU 내에서 작업이 밀리고 대기하면서 CPU 스틸 시간이 발생할 수 있습니다. 이것이 CPU 스틸 시간의 근본 원인이라면 해결책은 클라우드 서버의 크기를 조정하는 것입니다. 이것이 일시적인 과부하인 경우 설정을 변경하지 않고 그대로 두어도 안전합니다. 부하가 감소하면 CPU 스틸 시간이 사라지는 것을 볼 수 있습니다.

클라우드 서버를 호스팅하는 물리적 서버가 과부하 상태입니다
호스트 과부하가 발생한 경우, 이는 당사 측의 장애입니다. 드물지만 발생할 수 있습니다. 이 경우 당사는 라이브 마이그레이션을 사용하여 가상 머신을 중단 없이 다른 물리적 컴퓨팅 노드로 마이그레이션함으로써 부하 수준을 정상 수준으로 되돌립니다. 일반적으로 당사는 호스트를 전체 부하보다 훨씬 낮은 수준으로 유지합니다. 따라서 장기간 이 현상이 계속 관찰되면 당사에 문의해 주시기 바랍니다. 당사의 연중무휴 무료 지원팀이 귀하가 사용 중인 물리적 호스트를 확인할 수 있습니다. 과부하가 없다면 그것이 CPU 스틸 시간의 근본 원인일 가능성은 낮습니다.

더 작은 가상 코어 크기를 사용하고 있습니다
CloudSigma에서는 모든 클라우드 서버 크기에 대해 예를 들어 더 많은 수의 더 작은 가상 코어의 CPU 스레드를 가질 수 있는 이점을 누릴 수 있도록 가상 코어 크기를 정의하는 기능을 제공합니다. 운영 체제 내의 클라우드 서버는 항상 코어 크기를 전체 물리적 크기로 인식합니다.

물리적 코어가 2.6GHz이지만 VM이 4GHz이고 코어가 두 개인 경우, 각 가상 코어는 2GHz가 됩니다. 따라서 항상 스틸 시간이 표시됩니다. 사실 이는 가상 코어 크기가 더 작기 때문에 전체 코어의 전체 크기가 아니라 비례 배분된 양을 받기 때문입니다. 따라서 실제로 더 작은 가상 코어 크기를 사용하고 있다면 CPU 스틸 시간 계산 시 이를 항상 반영하여 조정해야 합니다. 이를 방지하려면 코어당 전체 코어 크기를 사용할 수 있습니다. 가상 코어 크기를 전체 CPU 코어 크기(예: Intel v4 2.6GHz)로 확장하여 이 작업을 수행할 수 있습니다.

결론

클라우드에서의 CPU 스틸 시간은 기존의 단일 테넌트 물리적 환경보다 조금 더 복잡합니다. 하지만 분명히 여전히 존재합니다. 그러나 운영 체제의 CPU 스틸 시간 보고는 다양한 조건에 맞게 조정되지 않았습니다. 이는 오탐이 발생할 수 있음을 의미합니다. CPU 스틸 시간이 발견되면 대개 리소스 제한이 발생하고 있음을 의미합니다.  이 글이 근본 원인을 신속하게 파악하고 원활한 운영을 계속 유지하는 데 도움이 되기를 바랍니다.

즐거운 컴퓨팅 되세요!

Robert

 

author

로버트 젠킨

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

아직 댓글이 없습니다. 첫 번째로 작성해 보세요.