Dos proveedores pueden anunciar ambos “2 vCPU” a precios radicalmente distintos, y el más barato no siempre es el peor negocio: a veces es exactamente el mismo hardware, y a veces es una cuarta parte del rendimiento compartido con una multitud. La etiqueta por sí sola no te dirá cuál es cuál. Para leer un plan de VDS con honestidad, necesitas saber qué hay debajo de la palabra “núcleo” y qué deja fuera, en silencio, el proveedor de su ficha técnica.
A lo largo de este artículo, "núcleo" significa un núcleo físico de CPU, "hilo" significa un hilo de ejecución de hardware (SMT/Hyper-Threading), y "vCPU" significa lo que el hipervisor entrega a tu máquina virtual. Toda la confusión viene de que esas tres cosas se comercializan como si fueran una sola.
Núcleo, hilo, vCPU: tres cosas diferentes
Una CPU de servidor moderna tiene un número fijo de núcleos físicos: silicio real que hace el cómputo. Con multithreading simultáneo (Intel lo llama Hyper-Threading, AMD lo llama SMT), cada núcleo físico expone dos hilos de hardware al sistema operativo. Esos dos hilos comparten las unidades de ejecución de un mismo núcleo; no son dos núcleos independientes. Cuando ambos hilos están ocupados con trabajo pesado, compiten entre sí, y normalmente verás bastante menos del 2x que ingenuamente podrías esperar.
Una vCPU es la unidad que el hipervisor presenta a tu VM. En el caso común, una vCPU corresponde a un hilo de hardware. Así que un plan de “2 vCPU” suele ser dos hilos, que, según el host, podrían equivaler a la capacidad de un núcleo físico completo o a dos hilos prestados de dos núcleos distintos que ya están ocupados. “vCore” es solo un sinónimo de marketing de vCPU; no te promete un núcleo físico dedicado, por más sólida que suene la palabra.
La pregunta real nunca es cuántas vCPU obtienes. Es cuánto de cada una es realmente tuyo.
Oversubscription: el número que nadie imprime
Aquí está la parte que la ficha técnica oculta. Un host con, digamos, 64 hilos no tiene por qué vender solo 64 vCPU. El hipervisor le permite a un proveedor asignar muchas más vCPU de las que hay hilos físicos, apostando a que no todos los clientes están ocupados al mismo tiempo. Esa proporción —vCPU vendidas por cada hilo real— es el oversubscription o contention ratio (proporción de contención).
Con una proporción de 1:1, tu vCPU siempre está ahí cuando la necesitas. Con 4:1 u 8:1, tus “2 vCPU” podrían estar compartiendo cada hilo con otros tres o siete inquilinos. Cuando tus vecinos están inactivos, te sientes bien. Cuando el host se satura —y lo hará, porque el tráfico de todos llega a su pico más o menos a las mismas horas—, tu tiempo de CPU se raciona, y tu aplicación se ralentiza por razones que no tienen nada que ver con tu propia carga.
El número de CPU más importante en un plan de VDS es el que casi ningún proveedor imprime: cuántos clientes comparten cada hilo.
El oversubscription no es inherentemente un fraude; es un compromiso de ingeniería legítimo que mantiene los precios bajos. El problema es que es invisible. No puedes verlo en htop, no puedes medirlo con un benchmark a las 3 de la madrugada cuando el host está tranquilo, y solo lo descubres cuando tus tiempos de respuesta tiemblan bajo carga sin ninguna explicación en tus propias métricas.
CPU steal: cómo medirlo de verdad
Por suerte, la contención deja una huella. Cuando el hipervisor quiere darle a tu vCPU tiempo en un hilo físico pero ese hilo está ocupado atendiendo a otra persona, tu VM queda lista para ejecutarse pero esperando. Linux registra exactamente esto como tiempo de CPU steal (robo de CPU): la columna %st.
Abre top y presiona 1 para expandir las líneas por núcleo, o ejecuta mpstat para una vista más limpia:
$ mpstat 1 5 # ... # CPU %usr %nice %sys %iowait %irq %soft %steal %idle # all 12.0 0.00 3.1 0.4 0.0 0.2 18.7 65.6
%steal muestra el tiempo que el hipervisor le quitó a tu vCPU para atender a otro inquilino.Un %steal estable de un solo dígito es ruido de fondo normal. Dobles dígitos sostenidos —como el 18.7% de arriba— significan que estás pagando por CPU que no tienes permitido usar. El host está sobreasignado (oversubscribed) y con contención, y esa cifra es una medición directa y honesta de cuánto de tus “2 vCPU” se están comiendo los vecinos.
Nota. El tiempo de steal solo aparece cuando el host está realmente bajo contención. Un VDS recién creado en un host tranquilo puede marcar 0% de steal el primer día y subir a 20% durante una semana ocupada. Mídelo durante tus horas pico reales, no justo después del aprovisionamiento.
Base clock, boost clock y por qué ambos importan
La velocidad de un hilo importa tanto como su disponibilidad. Las CPU anuncian dos números: un base clock (frecuencia base) que pueden sostener indefinidamente en todos los núcleos, y un boost clock (frecuencia turbo) más alto que alcanzan brevemente en unos pocos núcleos cuando el margen térmico y de energía lo permite. Al marketing le encanta el número de boost; tu carga de trabajo constante vive cerca del número base.
En un host compartido que corre muchas VM ocupadas, la carga en todos los núcleos fija la CPU cerca del base clock: el boost rara vez se activa para ti, porque el silicio ya está trabajando duro para todos. Así que cuando un plan menciona una frecuencia de reloj, pregunta cuál es. Una cifra de boost alta en un host saturado es un número que casi nunca verás en producción.
Qué preguntarle a un proveedor antes de comprar
Lee más allá del número destacado de vCPU y pregunta sin rodeos:
- ¿Las vCPU son dedicadas o compartidas con una proporción de oversubscription? ¿Y cuál es esa proporción?
- ¿Una vCPU corresponde a un núcleo físico completo o a un único hilo SMT?
- ¿Cuál es el base clock de la CPU subyacente, no solo el boost?
- ¿El CPU steal está limitado o monitoreado, y qué cifra se considera normal?
- ¿Puedo ejecutar mi propio
mpstatdurante las horas pico y ver números honestos?
Un proveedor que pueda responder esto sin titubear te está diciendo que la ficha técnica es real. Uno que esquiva las preguntas también te está diciendo algo.
Cómo Cybeward asigna los planes a recursos reales
En Cybeward la respuesta es corta, y ese es el punto. La CPU, la RAM y el disco son recursos reales asignados detrás de cada producto facturado: no hacemos oversubscription. Cuando un plan dice cierta cantidad de vCPU, esa capacidad queda reservada para tu VM, de modo que tu %steal se mantiene en el nivel de ruido en lugar de subir cuando un vecino se pone ocupado. Los números del plan son los números que recibes, respaldados por nuestro SLA del 99.999%, y eres bienvenido a ejecutar mpstat y confirmarlo tú mismo. Preferimos que leas la ficha técnica con atención, porque la nuestra se sostiene cuando lo haces.