Uso de máquinas virtuales de acceso puntual con Batch

Azure Batch ofrece máquinas virtuales de acceso puntual para reducir el costo de las cargas de trabajo de Batch. Las máquinas virtuales de acceso puntual posibilitan nuevos tipos de cargas de trabajo de Batch al permitir el uso de una elevada capacidad de proceso a un costo reducido.

Las máquinas virtuales de acceso puntual aprovechan la capacidad sobrante en Azure. Al especificar máquinas virtuales de acceso puntual en sus grupos, Azure Batch puede usar este excedente cuando esté disponible.

El inconveniente del uso de máquinas virtuales de acceso puntual es que esas máquinas virtuales pueden no estar siempre disponibles para su asignación o pueden reemplazarse en cualquier momento, según la capacidad disponible. Por este motivo, las máquinas virtuales de acceso puntual resultan más adecuadas para las cargas de trabajo de procesamiento por lotes y asincrónicas en las que el tiempo de finalización del trabajo es flexible y el trabajo se distribuye entre muchas máquinas virtuales.

Las máquinas virtuales de acceso puntual se ofrecen a un precio reducido en comparación con las máquinas virtuales dedicadas. Para más información sobre precios, consulte Precios de Batch.

Diferencias entre las máquinas virtuales de prioridad baja y las de acceso puntual

Batch ofrece dos tipos de máquinas virtuales preferentes de bajo costo:

  • Máquinas virtuales de acceso puntual, una oferta actual de Azure también disponible como máquinas virtuales de instancia única o como conjuntos de escalado de máquinas virtuales.
  • Máquinas virtuales de prioridad baja, una oferta heredada que solo está disponible a través de Azure Batch.

El tipo de nodo que obtendrá depende del modo de asignación de grupos de la cuenta de Batch, el cual se puede establecer durante la creación de la cuenta. Las cuentas de Batch que usan el modo de asignación de grupos de suscripción de usuario siempre reciben máquinas virtuales de acceso puntual. Las cuentas de Batch que usan el modo de asignación de grupos administrado por Batch siempre reciben máquinas virtuales de prioridad baja.

Las máquinas virtuales de acceso puntual de Azure y las máquinas virtuales de prioridad baja de Batch son similares, pero tienen algunas diferencias de comportamiento.

Máquinas virtuales de Spot VM de prioridad baja
Cuentas de Batch admitidas Cuentas de Batch de suscripción de usuario Cuentas de Batch administradas por Batch
Configuraciones de grupos de Batch admitidas Configuración de máquina virtual Configuración de máquina virtual y configuración del servicio en la nube (en desuso)
Regiones disponibles Todas las regiones admiten máquinas virtuales de acceso puntual Todas las regiones excepto Microsoft Azure China 21Vianet
Idoneidad del cliente No está disponible para algunos tipos de ofertas de suscripciones. Obtenga más información sobre las limitaciones de máquinas virtuales de acceso puntual Disponible para todos los clientes de Batch
Posibles motivos de expulsión Capacity Capacity
Modelo de precios Descuentos variables en relación con los precios estándar de las máquinas virtuales Descuentos fijos en relación con los precios estándar de las máquinas virtuales
Modelo de cuota Sujeto a las cuotas de núcleos de la suscripción Sujeto a las cuotas de núcleos de la cuenta de Batch
SLA de disponibilidad None None

Compatibilidad de Batch con máquinas virtuales de acceso puntual

Azure Batch ofrece varias funcionalidades que facilitan el uso y aprovechamiento de las máquinas virtuales de acceso puntual:

  • Los grupos de Batch pueden contener máquinas virtuales dedicadas y máquinas virtuales de acceso puntual. El número de cada tipo de máquina virtual se puede especificar cuando se crea un grupo, o puede cambiarse en cualquier momento para un grupo ya existente, mediante la operación explícita de cambio de tamaño o el escalado automático. El envío de trabajos y tareas puede permanecer sin cambios independientemente de los tipos de máquina virtual en el grupo. También puede configurar un grupo para usar completamente máquinas virtuales de acceso puntual para ejecutar trabajos lo más barato posible, pero volver a máquinas virtuales dedicadas si la capacidad desciende por debajo de un umbral mínimo, a fin de mantener los trabajos en funcionamiento.
  • Los grupos de Batch buscan automáticamente el número objetivo de máquinas virtuales de acceso puntual. Si las máquinas virtuales se reemplazan o no están disponibles, Batch intenta reemplazar la capacidad perdida y volver al destino.
  • Cuando se interrumpen las tareas, Batch lo detecta y vuelve a poner las tareas en cola para que se ejecuten nuevamente.
  • Las máquinas virtuales de acceso puntual tienen una cuota de vCPU diferente de las máquinas virtuales dedicadas. La cuota de máquinas virtuales de acceso puntual es mayor que la de máquinas virtuales dedicadas, porque las primeras cuestan menos. Para más información, consulte Límites y cuotas del servicio Batch.

Consideraciones y casos de uso

Muchas cargas de trabajo de Batch son una buena opción para las máquinas virtuales de acceso puntual. Considere la posibilidad de usarlas cuando los trabajos estén divididos en muchas tareas paralelas o cuando haya muchos trabajos escalados horizontalmente y distribuidos en muchas máquinas virtuales.

Algunos ejemplos de casos de uso de procesamiento por lotes adecuados para usar máquinas virtuales de acceso puntual son:

  • Desarrollo y pruebas: en concreto, si se están desarrollando soluciones a gran escala se pueden obtener ahorros significativos. Aunque todos los tipos de pruebas pueden beneficiarse, será especialmente ventajoso para pruebas de carga y regresión a gran escala.
  • Complementar la capacidad a petición: las máquinas virtuales de acceso puntual se pueden usar para complementar las máquinas virtuales dedicadas normales. Cuando están disponibles, los trabajos pueden escalarse y, por lo tanto, completarse más rápido con un costo menor; cuando no están disponibles, la línea de base de las máquinas virtuales dedicadas sigue estando disponible.
  • Tiempo de ejecución flexible de los trabajos: si hay flexibilidad en el tiempo en que tienen que completarse los trabajos, entonces se pueden tolerar posibles bajadas en la capacidad; sin embargo, con la adición de máquinas virtuales de acceso puntual, los trabajos se ejecutan frecuentemente más rápido y con un costo menor.

Los grupos de Batch se pueden configurar para usar máquinas virtuales de acceso puntual de varias maneras:

  • Un grupo solo puede usar máquinas virtuales de acceso puntual. En este caso, Batch recupera cualquier capacidad reemplazada cuando esté disponible. Esta configuración es la manera más barata de ejecutar trabajos.
  • Las máquinas virtuales de acceso puntual se pueden usar con una línea de base fija de máquinas virtuales dedicadas. El número fijo de máquinas virtuales dedicadas garantiza que siempre haya algo de capacidad para mantener el progreso de un trabajo.
  • Un grupo puede usar una combinación dinámica de máquinas virtuales dedicadas y de acceso puntual, de modo que las máquinas virtuales de prioridad baja más baratas se usen únicamente cuando estén disponibles, y las máquinas virtuales dedicadas de precio completo se escalen verticalmente cuando sea necesario. Esta configuración mantiene una cantidad mínima de capacidad disponible para mantener el progreso de los trabajos.

Tenga en cuenta los siguientes procedimientos al planear el uso de máquinas virtuales de acceso puntual:

  • Para maximizar el uso de la capacidad sobrante en Azure, los trabajos adecuados se pueden escalar horizontalmente.
  • Puede que, en ocasiones, las máquinas virtuales no estén disponibles o se reemplacen; como resultado, la capacidad para los trabajos se ve mermada y puede generar interrupciones de las tareas o la necesidad de ejecutarlas una y otra vez.
  • Las tareas con tiempos de ejecución más cortos tienden a funcionar mejor con máquinas virtuales de acceso puntual. Los trabajos con tareas más largas pueden resultar más afectados si se interrumpen. Si las tareas de ejecución prolongada implementan puntos de control para guardar el progreso mientras se ejecutan, este impacto puede reducirse.
  • Los trabajos de MPI de larga ejecución que usan varias máquinas virtuales no son adecuados para usar máquinas virtuales de acceso puntual, porque una máquina virtual reemplazada probablemente ocasione que todo el trabajo tenga que ejecutarse de nuevo.
  • Los nodos de acceso puntual pueden marcarse como inutilizables si las reglas del grupo de seguridad de red (NSG) están configuradas incorrectamente.

Creación y administración de grupos con máquinas virtuales de acceso puntual

Un grupo de Batch puede contener tanto máquinas virtuales dedicadas como de acceso puntual (también conocidas como nodos de proceso). Puede establecer el número objetivo de nodos de proceso tanto para las máquinas virtuales dedicadas como para las de acceso puntual. El número de nodos objetivo especifica el número de máquinas virtuales que quiere tener en el grupo.

Por ejemplo, para crear un grupo con máquinas virtuales de Azure (en este caso, máquinas virtuales Linux) con un destino de 5 máquinas virtuales dedicadas y 20 máquinas virtuales de acceso puntual:

ImageReference imageRef = new ImageReference(
    publisher: "Canonical",
    offer: "UbuntuServer",
    sku: "20.04-LTS",
    version: "latest");

// Create the pool
VirtualMachineConfiguration virtualMachineConfiguration =
    new VirtualMachineConfiguration("batch.node.ubuntu 20.04", imageRef);

pool = batchClient.PoolOperations.CreatePool(
    poolId: "vmpool",
    targetDedicatedComputeNodes: 5,
    targetLowPriorityComputeNodes: 20,
    virtualMachineSize: "Standard_D2_v2",
    virtualMachineConfiguration: virtualMachineConfiguration);

Puede obtener el número actual de nodos para las máquinas virtuales dedicadas y las de acceso puntual:

int? numDedicated = pool1.CurrentDedicatedComputeNodes;
int? numLowPri = pool1.CurrentLowPriorityComputeNodes;

Los nodos de grupo tienen una propiedad que indica si el nodo es una máquina virtual dedicada o de acceso puntual:

bool? isNodeDedicated = poolNode.IsDedicated;

En ocasiones, es posible que las máquinas virtuales se reemplacen. Cuando esto suceda, las tareas que se estuvieran ejecutando en las máquinas virtuales del nodo reemplazado se pondrían de nuevo en cola y se volverían a ejecutar.

En el caso de los grupos de configuración de máquinas virtuales, Batch también realiza lo siguiente:

  • Las máquinas virtuales reemplazadas tienen su estado actualizado a Reemplazada.
  • La máquina virtual se elimina de manera eficaz, lo que hace que se pierdan los datos almacenados localmente en ella.
  • Una operación de enumeración de nodos del grupo sigue devolviendo los nodos reemplazados.
  • El grupo intenta continuamente alcanzar el número objetivo de nodos de acceso puntual disponibles. Cuando se encuentra la capacidad de reemplazo, los nodos mantienen sus identificaciones, pero se reinicializan, pasando por los estadosCreando e Iniciando antes de que estén disponibles para la programación de tareas.
  • Los recuentos de reemplazos están disponibles como una métrica en el portal de Azure.

Escalado de grupos que contienen máquinas virtuales de acceso puntual

Al igual que sucede con grupos que se componen únicamente de máquinas virtuales dedicadas, es posible escalar un grupo que contenga máquinas virtuales de acceso puntual mediante la llamada al método Resize o por medio de escalado automático.

La operación de cambio de tamaño de grupo tiene un segundo parámetro opcional que actualiza el valor de targetLowPriorityNodes:

pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);

La fórmula de escalado automático de grupo admite máquinas virtuales de acceso puntual del siguiente modo:

  • Puede obtener o establecer el valor de la variable definida por el servicio $TargetLowPriorityNodes.
  • Puede obtener el valor de la variable definida por el servicio $CurrentLowPriorityNodes.
  • Puede obtener el valor de la variable definida por el servicio $PreemptedNodeCount. Esta variable devuelve el número de nodos en estado reemplazado y le permite escalar o reducir verticalmente el número de nodos dedicados, en función del número de nodos reemplazados que no estén disponibles.

Configuración de trabajos y tareas

Los trabajos y tareas pueden requerir una configuración adicional para los nodos de acceso puntual:

  • La propiedad JobManagerTask de un trabajo tiene una propiedad AllowLowPriorityNode. Cuando esta propiedad es true, la tarea del administrador de trabajos se puede programar en un nodo dedicado o en uno de acceso puntual. Si es false, la tarea del administrador de trabajos se programa solo en un nodo dedicado.
  • Una AZ_BATCH_NODE_IS_DEDICATEDvariable de entorno está disponible para una aplicación de tareas de modo que sea posible determinar si se ejecuta en un nodo de acceso puntual o en uno dedicado.

Visualización de métricas para máquinas virtuales de acceso puntual

Hay nuevas métricas disponibles en Azure Portal para los nodos de acceso puntual. Estas son las métricas:

  • Recuento de nodos de baja prioridad
  • Recuento de núcleos de baja prioridad
  • Recuento de nodos con prioridad

Para ver estas métricas en Azure Portal

  1. Vaya a la cuenta de Batch en Azure Portal.
  2. Seleccione Métricas en la sección Supervisión.
  3. Seleccione las métricas que quiere en la lista Métricas.

Limitaciones

  • Las máquinas virtuales de acceso puntual en Batch no admiten la configuración de un precio máximo y no admiten expulsiones basadas en precios. Solo se pueden expulsar por motivos de capacidad.
  • Las máquinas virtuales de acceso puntual solo están disponibles para los grupos de configuración de máquinas virtuales y no para los grupos de configuración de servicios en la nube, que están en desuso.
  • Las máquinas virtuales de acceso puntual no están disponibles para algunas nubes, tamaños de máquina virtual y tipos de oferta de suscripción. Obtenga más información sobre las limitaciones de máquinas virtuales de acceso puntual.

Pasos siguientes