Virtualización

¿Qué es vCPU?

También conocido como: virtual CPU
Definición

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.

Por qué es importante vCPU

La cuestión decisiva es si el hilo subyacente se comparte con otros inquilinos o está reservado. Una vCPU dedicada no tiene otros inquilinos planificados contra ella; una compartida compite, produciendo steal time.

vCPU en la práctica

Cuando ejecutas un servidor, vCPU es lo que tu carga de trabajo realmente consume. Miras primero el tiempo de robo: si está constantemente por encima de unos pocos porcentajes, tus vCPU son compartidos y otros inquilinos están comiendo tus ciclos. Podrías aumentar el número de vCPU para solucionar la latencia, pero observa si el problema es la contención, no los núcleos. Equivocarse significa pagar por tiempo de programación que no es tuyo, y tu aplicación sufre bloqueos que no puedes explicar.

Lo que se suele malinterpretar sobre vCPU

Un error común es tratar las vCPU como si fueran núcleos físicos con velocidad garantizada. En un entorno KVM, cada vCPU está respaldada por un hilo del host, y en un host compartido, ese hilo compite. La gente asume que más vCPU siempre ayudan, pero si el hilo de respaldo está en contención, obtienes tiempo de robo. La corrección: verifica el tiempo de robo antes de escalar el número de vCPU.

vCPU — preguntas frecuentes

¿Cuántas vCPU necesito?

Depende de tu carga de trabajo. Para un servidor web ocupado, comienza con dos y observa el tiempo de robo de CPU. Si el robo se mantiene bajo y aún estás limitado, agrega vCPU. En nuestros planes KVM, puedes aumentar CPU y RAM con un reinicio breve, por lo que puedes ajustar sin reconstruir.

¿Puedo cambiar el número de vCPU más tarde?

Sí, en su servidor existente puede aumentar la CPU con un reinicio breve, y el disco crece en línea. Bajar de nivel requiere una reconstrucción en lugar de una migración en vivo, por lo que es mejor comenzar pequeño y escalar hacia arriba.

Más de virtualización

KVM
KVM es virtualización completa por hardware integrada en el kernel de Linux, lo que da a cada invitado su propio kernel y un aislamiento reforzado por hardware de otros inquilinos.
OpenVZ
OpenVZ es virtualización por contenedores en la que cada instancia comparte el kernel del host, por lo que los invitados no pueden cargar módulos del kernel ni ejecutar un sistema operativo diferente.
LXC
LXC es contenedorización nativa de Linux que aísla procesos con namespaces y cgroups mientras comparte el kernel del host.
Hipervisor
Un hipervisor es la capa de software que crea y ejecuta máquinas virtuales, asignando CPU física, memoria y E/S entre ellas.
Virtualización anidada
La virtualización anidada permite que una máquina virtual ejecute a su vez máquinas virtuales, exponiendo las extensiones de virtualización del procesador al invitado.
cloud-init
cloud-init es el mecanismo estándar para configurar una máquina virtual en el primer arranque, usando metadatos proporcionados por la plataforma.