Todos los que administramos VMware sabemos de lo que hablamos cuando nombramos CPU Ready (%RDY) como Métrica de Rendimiento, entonces explicare que es, y como se mide en Openshift Virtualization.
¿Qué es CPU Ready?
El término “CPU Ready” puede dar lugar a malentendidos. Se podría pensar que representa la cantidad de CPU lista para ser usada y que un alto valor es algo positivo. Sin embargo, cuanto mayor sea el CPU Ready, peor será el rendimiento de la infraestructura vSphere y más sufrirán las aplicaciones.
Definición oficial de VMware:
Es el porcentaje de tiempo en que un «world» está listo para ejecutarse y esperando la aprobación del CPU Scheduler.
En vSphere, un «Ciclo» es un proceso.
Cuanto mayor sea el CPU Ready, más tiempo pasarán las VM sin ejecutar lo que deberían.
En otras palabras, un «Ciclo» es una vCPU esperando su turno para ejecutarse en un CPU físico. CPU Ready mide cuánto tiempo esa vCPU espera para ser programada y ejecutarse en un núcleo físico.
¿Qué causa un alto CPU Ready?
Identificar el alto uso de CPU es sencillo, pero encontrar la causa del CPU Ready puede ser más difícil. Las dos causas principales de un alto CPU Ready son:
Alta sobreasignación de CPU (CPU Oversubscription)
Uso de límites de CPU (CPU Limits)
Sobreasignación de CPU
La razón más común de CPU Ready alto es asignar más vCPUs de las que pueden ser manejadas por los CPU físicos.
Reglas generales para la relación vCPU:pCPU:
1:1 a 1:3 → No hay problema.
1:3 a 1:5 → Puede empezar a degradarse el rendimiento.
1:5 o mayor → Probable problema de CPU Ready.
¿Cómo ver el CPU Ready en VMware?
La mejor manera de analizar CPU Ready es a nivel de VM y por vCPU, no a nivel de host.
En vSphere Client, en los gráficos de rendimiento, se puede agregar CPU Ready como métrica.
En esxtop, se puede ver el %RDY para cada VM.
¿Cuánto CPU Ready es “normal”?
VMware recomienda mantener CPU Ready por debajo del 5% por vCPU.
CPU Ready se mide en milisegundos (ms) en la UI de vSphere, pero para calcular el porcentaje real:
Si en 20 segundos (20000 ms) una VM tiene 2173 ms de CPU Ready, entonces: (2173 / 20000) = 10.87% → Esto es alto.
¿Cómo medir CPU Ready en OpenShift Virtualization?
En VMware vSphere, CPU Ready (%RDY) mide el tiempo que una vCPU pasa esperando ser programada en un CPU físico. En OpenShift Virtualization, no existe una métrica llamada CPU Ready directamente, pero el equivalente en Kubernetes y OpenShift se mide a través del CPU Throttling.
📌 Métrica equivalente en OpenShift:
container_cpu_cfs_throttled_seconds_total
Mide el tiempo total (en segundos) que un contenedor (o VM en OpenShift Virtualization) ha estado «throttled», es decir, ha sido limitado en su uso de CPU porque excedió los recursos asignados.
📌 Otras métricas relacionadas:
container_cpu_cfs_periods_total
Cantidad total de períodos de CPU asignados al contenedor.
container_cpu_cfs_throttled_periods_total
Número de períodos de CPU en los que la VM fue restringida.
Usar Grafana en OpenShift Monitoring
Si tenés configurado Prometheus y Grafana, podés crear un dashboard con:
Métrica:container_cpu_cfs_throttled_seconds_total
Filtro:{pod=~"mi-vm-.*"} (para enfocarse en VMs específicas)
Usar oc adm top para obtener CPU en tiempo real
Comando:oc adm top pods -n mi-namespace
Esto muestra el uso de CPU y memoria en tiempo real para cada VM.
🚀 Recomendaciones para evitar CPU Throttling en OpenShift Virtualization
No usar CPU Limits innecesarios
Si una VM tiene un CPU Limit bajo, puede ser constantemente restringida, causando CPU Throttling alto.
En su lugar, definir solo CPU Requests y dejar el Limit abierto si el host tiene recursos disponibles.
Monitorear y ajustar los recursos asignados
Revisar periódicamente las métricas de CPU Throttling en Prometheus/Grafana.
Asegurar que las VMs críticas tengan suficientes recursos.
Evitar la sobreasignación de vCPUs en los nodos físicos
En OpenShift, asignar más vCPUs de las que tiene el nodo físico puede causar contención y throttling.
Seguir ratios recomendados de vCPU vs. pCPU.
📊 Umbrales para interpretar CPU Throttling en OpenShift
CPU Throttling (%)
Estado
Impacto en el rendimiento
0 – 5%
🔵 Óptimo
No hay impacto en el rendimiento.
5 – 10%
🟡 Advertencia
Posible latencia en aplicaciones sensibles a la CPU.
10 – 20%
🟠 Problema moderado
Pueden aparecer retrasos y degradación en el rendimiento.
> 20%
🔴 Crítico
La VM o contenedor está fuertemente limitado, afectando su desempeño.
🛠️ Comparación rápida: VMware vs. OpenShift Virtualization