Skip to main content

¿Cómo medir CPU Ready en OpenShift Virtualization? 🚀🤓


eprieto
Forum|alt.badge.img+7
  • On the path to Greatness
  • 159 comments

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:

  1. Alta sobreasignación de CPU (CPU Oversubscription)
  2. 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

  1. 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.
  2. 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.
  3. 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

Concepto VMware (vSphere) OpenShift Virtualization (KubeVirt)
CPU Ready (%) %RDY en esxtop container_cpu_cfs_throttled_seconds_total
Medición en GUI vSphere Client OpenShift Grafana Dashboard
Medición CLI esxtop oc adm top pods + Prometheus
Causa principal CPU Oversubscription CPU Limits o sobrecarga del nodo

 

 

 

 

 

 

0 comments

Be the first to comment!

Comment