가상화

vCPU란 무엇인가요?

다른 이름: virtual CPU
정의

A vCPU is a virtual processor presented to a guest, backed by scheduling time on a physical core or thread. The decisive question is whether the backing thread is shared with other tenants or reserved. A dedicated vCPU has no other tenant scheduled against it; a shared one competes, producing steal time.

vCPU가 중요한 이유

결정적인 질문은 백킹 스레드가 다른 테넌트와 공유되는지 아니면 전용인지입니다. 전용 vCPU에는 다른 테넌트가 스케줄링되지 않지만, 공유 vCPU는 경쟁하여 스틸 타임을 발생시킵니다.

vCPU 실제 적용

서버를 운영할 때, vCPU는 워크로드가 실제로 소비하는 것입니다. 먼저 스틸 타임을 봅니다. 몇 퍼센트 이상 꾸준히 나타나면 vCPU가 공유되고 다른 테넌트가 사이클을 소비하는 것입니다. 지연 시간을 해결하기 위해 vCPU 수를 늘릴 수 있지만, 문제가 코어가 아니라 경합인지 확인하세요. 잘못하면 내 것이 아닌 스케줄링 시간에 비용을 지불하고, 애플리케이션은 설명할 수 없는 지연을 겪습니다.

vCPU에 대한 사람들의 오해

일반적인 실수는 vCPU를 보장된 속도의 물리적 코어처럼 취급하는 것입니다. KVM 환경에서 각 vCPU는 호스트 스레드로 지원되며, 공유 호스트에서는 해당 스레드가 경합합니다. 사람들은 더 많은 vCPU가 항상 도움이 된다고 가정하지만, 지원 스레드가 경합하면 스틸 타임이 발생합니다. 수정: vCPU 수를 확장하기 전에 스틸 타임을 확인하세요.

vCPU — 일반적인 질문

vCPU는 몇 개가 필요한가요?

워크로드에 따라 다릅니다. 바쁜 웹 서버의 경우 2개로 시작하고 CPU 스틸 타임을 관찰하세요. 스틸이 낮게 유지되고 여전히 한계에 도달하면 vCPU를 추가하세요. KVM 요금제에서는 짧은 재부팅으로 CPU와 RAM을 늘릴 수 있으므로 재구축 없이 조정할 수 있습니다.

나중에 vCPU 수를 변경할 수 있나요?

是的,在您现有的服务器上,您可以通过短暂重启来增加CPU,磁盘则可以在线扩容。降级则需要重建而不是实时迁移,因此最好从小配置开始,再逐步升级。

vCPU가 등장하는 곳

가상화에서 더 보기

KVM
KVM은 Linux 커널에 내장된 완전한 하드웨어 가상화로, 각 게스트에 자체 커널과 다른 테넌트로부터 하드웨어 강제 격리를 제공합니다.
OpenVZ
OpenVZ는 모든 인스턴스가 호스트 커널을 공유하는 컨테이너 기반 가상화로, 게스트는 커널 모듈을 로드하거나 다른 운영 체제를 실행할 수 없습니다.
LXC
LXC는 커널을 공유하면서 네임스페이스와 cgroups로 프로세스를 격리하는 Linux 네이티브 컨테이너화입니다.
하이퍼바이저
하이퍼바이저는 가상 머신을 생성하고 실행하며 물리적 CPU, 메모리 및 IO를 그들 사이에 할당하는 소프트웨어 계층입니다.
嵌套虚拟化
중첩 가상화는 프로세서 가상화 확장을 게스트에 노출하여 가상 머신 자체가 가상 머신을 실행할 수 있게 합니다.
cloud-init
cloud-init는 플랫폼에서 제공하는 메타데이터를 사용하여 가상 머신을 첫 부팅 시 구성하는 표준 메커니즘입니다.