Citrix Hypervisor

Supervisar el uso de la CPU

Importante:

La actualización acumulativa 1 de Citrix Hypervisor 8.2 llega al final de su vida útil el 25 de junio de 2025. Planifique su actualización a XenServer 8 ahora para garantizar una transición fluida y un soporte continuo. Para obtener más información, consulte Actualizar.

Si utiliza los archivos de licencia de Citrix Virtual Apps and Desktops para licenciar los hosts de Citrix Hypervisor 8.2 Cumulative Update 1, estos archivos de licencia no son compatibles con XenServer 8. Antes de actualizar, debe adquirir los archivos de licencia de socket de XenServer Premium Edition para utilizarlos con XenServer 8. Estos archivos de licencia de socket están disponibles como un derecho de las suscripciones de Citrix para Private Cloud, Citrix Universal Hybrid Multi-Cloud, Citrix Universal MSP y Citrix Platform License para ejecutar sus cargas de trabajo de Citrix. Los clientes de Citrix que aún no hayan realizado la transición a estas nuevas suscripciones pueden solicitar participar en una promoción gratuita de 10.000 licencias de socket de XenServer Premium Edition. Para obtener más información, consulte XenServer.

Si no obtiene una licencia compatible para XenServer 8 antes de actualizar, cuando actualice sus hosts, estos volverán a la edición de prueba de 90 días. La Edición de Prueba ofrece las mismas características que la Edición Premium con algunas limitaciones. Para obtener más información, consulte Descripción general de las licencias de XenServer 8.

El número óptimo de vCPU por pCPU en un host depende de su caso de uso. Durante el funcionamiento, asegúrese de supervisar el rendimiento de su entorno de Citrix Hypervisor y ajuste su configuración en consecuencia.

Letra chica

En este ámbito, hay varios términos que a veces se utilizan indistintamente. En este artículo, utilizamos los siguientes términos y significados:

  • CPU (CPU física): El hardware físico conectado a un socket de procesador.
  • Núcleo: Una unidad física de procesamiento, capaz de un subproceso independiente de ejecución, que contiene todas las unidades funcionales necesarias para soportar esa ejecución.
  • Hyperthread: Una unidad de procesamiento físico, capaz de ejecutar un subproceso independiente, que comparte algunas unidades funcionales con otro hipersubproceso (también conocido como su “subproceso hermano”).
  • CPU lógica (pCPU): Una unidad capaz de un subproceso independiente de ejecución que incluye un conjunto de registros y un puntero de instrucción. En un sistema con hyperthreads habilitados, se trata de un hyperthread. En otros casos, es un núcleo.
  • PCPU de host: El número total de CPU lógicas en el host.
  • vCPU (CPU virtual): Una CPU lógica virtualizada. Se trata de una unidad lógica capaz de un subproceso independiente de ejecución, que se proporciona a las máquinas virtuales. En Citrix Hypervisor, las vCPU pueden “compartir el tiempo” de las pCPU, utilizando un programador para determinar qué vCPU se está ejecutando en qué pCPU en un momento dado.
  • vCPU invitadas: Las vCPU que se presentan a un sistema operativo invitado dentro de una máquina virtual.
  • vCPU Dom0: Las vCPU que son visibles para el dominio de control de Citrix Hypervisor (dom0).
  • Total de vCPU de host: La suma de las vCPU dom0 y todas las vCPU invitadas en el host.

Comportamiento general

El número total de vCPU en un host es el número de vCPU utilizadas por dom0 sumado al número total de vCPU asignadas a todas las máquinas virtuales del host. A medida que aumenta el número de vCPU en un host, puede experimentar los siguientes tipos de comportamiento:

  • Cuando el número total de vCPU en el host es menor o igual que el número de pCPU en el host, el host siempre proporciona tanta CPU como soliciten las máquinas virtuales.

  • Cuando el número total de vCPU en el host es mayor que el número de pCPU en el host, el host comparte la hora de las pCPU del host con las máquinas virtuales. Por lo general, este comportamiento no afecta a las máquinas virtuales porque sus vCPU suelen estar inactivas durante parte del tiempo y, en la mayoría de los casos, el host no alcanza el 100 % de uso de pCPU.

  • Cuando el número total de vCPU en el host es mayor que el número de pCPU en el host y el host es a veces Al alcanzar el 100 % de uso de pCPU del host, las vCPU de las máquinas virtuales no reciben tanta pCPU como solicitan durante los picos. En su lugar, durante estos picos, las máquinas virtuales se ralentizan para recibir una parte de la pCPU disponible en el host.

  • Cuando el número total de vCPU en el host es mayor que el número de pCPU en el host y el host es frecuentemente Al alcanzar el 100 % de uso de la pCPU del host, las vCPU de las máquinas virtuales se ralentizan continuamente para recibir una parte de las CPU disponibles en el host. Si las máquinas virtuales tienen requisitos en tiempo real, esta situación no es ideal y puede solucionarla reduciendo el número de vCPU en el host.

El número óptimo de vCPU en un host puede depender de la percepción de los usuarios de VM de la velocidad de sus VM, especialmente cuando las VM tienen requisitos en tiempo real.

Obtener información sobre las CPU

Para encontrar el número total de pCPU en el host, ejecute el siguiente comando:

  xe host-cpu-info --minimal

Para encontrar el número total de vCPU (guest y dom0) actualmente en su host, ejecute el siguiente comando:

  xl vcpu-list | grep -v VCPU | wc -l

Supervisión del uso de la CPU con métricas de RRD

Citrix Hypervisor proporciona métricas de RRD que describen el rendimiento de las vCPU de las máquinas virtuales.

Cuando el uso de pCPU del host es del 100 %

Cuando un host alcanza el 100 % del uso de pCPU del host, use estas métricas de máquina virtual para decidir si desea mover la máquina virtual a otro host:

riesgo de concurrencia del estado de ejecución

  • runstate_concurrency_hazard > 0% indica que, a veces, al menos una vCPU se está ejecutando mientras que al menos otra vCPU quiere ejecutarse, pero no puede obtener el tiempo de pCPU. Si las vCPU deben coordinarse, este comportamiento provoca problemas de rendimiento.

  • runstate_concurrency_hazard acercando al 100% es una situación que hay que evitar.

    Acciones sugeridas:

    Si hay problemas de rendimiento, realice una de las siguientes acciones:

    • Disminuya el número de vCPU en la máquina virtual.
    • Mueva la máquina virtual a otro host.
    • Disminuya el número total de vCPU en el host migrando otras máquinas virtuales o disminuyendo su número de vCPU.

contención parcial del estado de ejecución

  • runstate_partial_contention > 0% indica que al menos una vCPU desea ejecutarse, pero no puede obtener el tiempo de pCPU, y también que al menos otra vCPU está bloqueada (ya sea porque no hay nada que hacer o está esperando a que se complete la E/S).

  • runstate_concurrency_hazard acercando al 100% es una situación que hay que evitar.

    Acción sugerida:

    Compruebe si los servidores de almacenamiento de E/S de back-end están sobrecargados examinando las métricas de back-end proporcionadas por su proveedor de almacenamiento. Si los servidores de almacenamiento no están sobrecargados y hay problemas de rendimiento, realice una de las siguientes acciones:

    • Disminuya el número de vCPU en la máquina virtual.
    • Mueva la máquina virtual a otro host.
    • Disminuya el número total de vCPU en el host migrando otras máquinas virtuales o disminuyendo su número de vCPU.

contención total del estado de ejecución

  • runstate_full_contention > 0% indica que, a veces, las vCPU quieren ejecutarse todas al mismo tiempo, pero ninguna puede obtener el tiempo de pCPU.

  • runstate_full_contention acercando al 100% es una situación que hay que evitar.

    Acciones sugeridas:

    Si hay problemas de rendimiento, realice una de las siguientes acciones:

    • Disminuya el número de vCPU en la máquina virtual.
    • Mueva la máquina virtual a otro host.
    • Disminuya el número total de vCPU en el host migrando otras máquinas virtuales o disminuyendo su número de vCPU.

Cuando el uso de pCPU del host es inferior al 100 %

Si un host no alcanza el 100 % del uso de pCPU del host, utilice estas métricas de máquina virtual para decidir si una máquina virtual tiene el número correcto de vCPU:

estado_de_ejecución_completa

  • runstate_fullrun = 0% indica que las vCPU nunca se utilizan todas al mismo tiempo.

    Acción sugerida:

    Disminuya el número de vCPU en esta máquina virtual.

  • 0% < runstate_fullrun < 100% indica que las vCPU a veces se utilizan todas al mismo tiempo.

  • runstate_fullrun = 100% indica que las vCPU siempre se utilizan todas al mismo tiempo.

    Acción sugerida:

    Puede aumentar el número de vCPU en esta máquina virtual, hasta runstate_fullrun < 100%. No aumente más el número de vCPU, de lo contrario, puede aumentar la probabilidad de peligro de simultaneidad si el host alcanza el 100 % del uso de pCPU.

estado_de_ejecución_parcial_ejecución

  • runstate_partial_run = 0% indica que siempre se están utilizando todas las vCPU (ejecución completa = 100 %) o que no se están utilizando vCPU (inactivo = 100 %).

  • 0% < runstate_partial_run < 100% indica que, a veces, al menos una vCPU está bloqueada, ya sea porque no tienen nada que hacer o porque están esperando que se complete la E/S.

  • runstate_partial_run=100% indica que siempre hay al menos una vCPU bloqueada.

    Acción sugerida:

    Compruebe si los servidores de almacenamiento de E/S back-end están sobrecargados. Si no es así, es probable que la máquina virtual tenga demasiadas vCPU y puede reducir el número de vCPU en esta máquina virtual. Tener demasiadas vCPU en una máquina virtual puede aumentar el riesgo de que la máquina virtual entre en el estado de riesgo de simultaneidad cuando el uso de la CPU del host alcanza el 100 %.

Supervisar el uso de la CPU