Mejora la disponibilidad de recursos para los trabajos

En este documento, se explica la capacidad de obtención de recursos y se recomienda cómo mejorarla cuando creas y ejecutas trabajos de Batch.

¿Qué es la capacidad de obtención?

La capacidad de obtención es la probabilidad de que los recursos estén disponibles para ejecutar tu carga de trabajo. Cuando los recursos no están disponibles, tu carga de trabajo falla debido a errores de disponibilidad de recursos. La capacidad de obtención está relacionada con la confiabilidad, pero es distinta de ella. La confiabilidad es la probabilidad de que tu carga de trabajo esté disponible para sus usuarios. (La disponibilidad puede significar una o ambas cosas).

La relación entre la capacidad de obtención y la confiabilidad es compleja. Tu carga de trabajo necesita obtener recursos para ser confiable. Sin embargo, si bien cualquier flexibilidad en la ubicación, el tiempo y el hardware aumenta la capacidad de obtención, la confiabilidad solo aumenta con la flexibilidad que cumple con los requisitos de tu carga de trabajo. Por ejemplo, ten en cuenta las siguientes complejidades:

  • Los tipos de máquinas de mayor rendimiento pueden ser menos obtenibles debido a una mayor demanda, pero la confiabilidad disminuye cuando tu carga de trabajo no tiene suficiente rendimiento.
  • La flexibilidad de ubicación aumenta la capacidad de obtención, pero las máquinas asignadas de forma densa mejoran el rendimiento de la red.
  • La flexibilidad de tiempo aumenta la capacidad de obtención, pero la espera excesiva puede causar demoras innecesarias.

En consecuencia, una mayor capacidad de obtención no siempre es mejor. El nivel óptimo de capacidad de obtención varía según tus prioridades y requisitos. Por ejemplo, es posible que desees una capacidad de obtención más baja para priorizar la reducción de costos. Incluso si deseas priorizar la confiabilidad, es posible que debas equilibrar los beneficios de una mayor capacidad de obtención con los riesgos de un rendimiento más bajo o mayores demoras.

Recomendaciones para mejorar la capacidad de obtención de trabajos

Revisa las siguientes secciones para mejorar la capacidad de obtención de los trabajos de Batch:

Recomendaciones para todas las opciones de consumo

  • Separa tu carga de trabajo para minimizar tus necesidades de tipos de máquinas grandes y de alto rendimiento. Por ejemplo, primero separa las operaciones con uso intensivo de procesamiento de las operaciones de baja demanda mediante trabajos dependientes. Luego, reduce lo más posible los recursos de procesamiento mínimos que requiere cada trabajo maximizando el procesamiento en paralelo y minimizando las tareas estrechamente acopladas.

    Obtén más información sobre los trabajos dependientes y los recursos de procesamiento y el paralelismo.

  • Maximiza la cantidad de ubicaciones permitidas para los recursos de Compute Engine de tu trabajo. Esto es verdadero de forma predeterminada. A menos que especifiques el campo allowedLocations[] para un trabajo, los recursos de Compute Engine del trabajo pueden ejecutarse en todas las zonas de la ubicación del trabajo.

    Obtén más información sobre las ubicaciones.

  • Considera usar estrategias de falla rápida antes de esperar una mejor capacidad de obtención. Para evitar demoras, considera estrategias de falla rápida como las siguientes:

    • Si bien puedes solucionar los errores de disponibilidad de recursos volviendo a intentar tu solicitud en otro momento, suele ser más rápido probar primero diferentes ubicaciones o hardware.
    • Si estás dispuesto a usar varias opciones de consumo, suele ser más rápido probar primero las opciones de consumo sin demoras: reservas bajo demanda, bajo demanda y VMs Spot.
    • Para las cargas de trabajo nuevas que planeas repetir, es posible que prefieras acelerar las pruebas y la solución de problemas iniciales usando temporalmente opciones que sean más rápidas de obtener.

Recomendaciones basadas en la opción de consumo

La opción de consumo que selecciones es un factor principal para la capacidad de obtención de un trabajo. En esta sección, se resumen brevemente cada opción de consumo y se recomienda cómo optimizar la capacidad de obtención para cada opción de consumo.

Las siguientes opciones de consumo se enumeran de mayor a menor capacidad de obtención:

  • Para las cargas de trabajo con requisitos de alta capacidad de obtención, usa reservas. Las reservas proporcionan un nivel de seguridad más alto para obtener capacidad que todas las demás opciones de consumo. Para usar la capacidad reservada, primero crea o identifica las reservas existentes que puedes usar. Luego, configura las instancias para que consuman esa capacidad reservada. A diferencia de otras opciones de consumo, las instancias reservadas generan costos incluso cuando no se usan hasta que las borras, debido a su garantía de capacidad. Cuando consideres la capacidad de obtención, elige entre los siguientes tipos de reservas:

    • Para requerir capacidad reservada, consume una reserva específicamente segmentada. Estas reservas facilitan la verificación de que la capacidad reservada esté disponible y que tu carga de trabajo pueda consumirla. Cuando la capacidad reservada no está disponible y no es compatible, tu carga de trabajo falla y muestra un error. Una reserva específicamente segmentada incluye todas las reservas para el modelo de aprovisionamiento RESERVATION_BOUND y algunas reservas para el modelo de aprovisionamiento STANDARD.

      Obtén información para crear un trabajo que use reservas.

    • Para la capacidad reservada opcional, consume una reserva consumida automáticamente y usa la flexibilidad de instancias (vista previa). Estas opciones de reserva proporcionan altos niveles de seguridad para obtener capacidad, pero solo cuando está disponible la capacidad reservada que tu carga de trabajo puede consumir. Para las reservas consumidas automáticamente, debes especificar el modelo de aprovisionamiento STANDARD y verificar de forma manual que la capacidad reservada esté disponible y coincida con la configuración de instancias de tu carga de trabajo. Cuando la capacidad reservada no está disponible o no coincide, tu carga de trabajo intenta usar la capacidad bajo demanda en su lugar. Sin embargo, a diferencia de las reservas específicamente segmentadas, puedes usar la flexibilidad de instancias con reservas consumidas automáticamente para permitir que tu carga de trabajo intente consumir varias reservas consumidas automáticamente.

      Obtén información para crear un trabajo que use reservas y flexibilidad de instancias (vista previa).

  • Para las cargas de trabajo con requisitos de capacidad de obtención media, usa la capacidad bajo demanda con flexibilidad de instancias (vista previa) o las VMs de inicio flexible. Elige entre estas opciones de la siguiente manera:

    • A menos que tu tipo de máquina esté en la serie de máquinas A3 o no sea compatible, considera usar la capacidad bajo demanda con flexibilidad de instancias (vista previa). La opción de consumo bajo demanda requiere el modelo de aprovisionamiento STANDARD (predeterminado). A menos que bloquees explícitamente el consumo de reservas, tu carga de trabajo también intenta consumir reservas consumidas automáticamente de forma predeterminada. En particular, no recomendamos el uso bajo demanda para la serie de máquinas A3.

      Obtén información para crear un trabajo que use el modelo de aprovisionamiento estándar y la flexibilidad de instancias (vista previa).

    • De lo contrario, o si la capacidad bajo demanda no está disponible de forma repetida, considera usar VMs de inicio flexible. Para usar la opción de consumo de VMs de inicio flexible, especifica el modelo de aprovisionamiento FLEX_START. Las VMs de inicio flexible requieren que tu carga de trabajo soporte un tiempo de espera y una duración de ejecución limitada, pero también proporcionan descuentos a través de los precios del programador dinámico de cargas de trabajo.

      Obtén información para crear un trabajo que use VMs de inicio flexible.

  • Para las cargas de trabajo con requisitos de capacidad de obtención baja, usa VMs Spot con varias funciones de capacidad de obtención. Para usar la opción de consumo de VMs Spot, especifica el modelo de aprovisionamiento SPOT. Es posible que las VMs Spot no siempre estén disponibles y se puedan interrumpir en cualquier momento, por lo que solo se recomiendan para cargas de trabajo tolerantes a errores, pero pueden proporcionar los mayores descuentos a través de los precios de las VMs Spot.

    En general, te recomendamos que veas la disponibilidad de las VMs Spot antes de la creación y verifiques que tu carga de trabajo pueda controlar la interrupción. Luego, para mejorar la capacidad de obtención de las VMs Spot en los trabajos de Batch específicamente, te recomendamos que uses la flexibilidad de instancias con varios tipos de máquinas en el mismo rango (vista previa) y que uses reintentos automáticos para intentar volver a crear automáticamente las VMs Spot después de la interrupción.

    Obtén información para ver la disponibilidad de las VMs Spot y administrar la interrupción de las VMs Spot en la documentación de Compute Engine. Luego, obtén información para crear un trabajo que use el modelo de aprovisionamiento de VMs Spot, flexibilidad de instancias (vista previa) y reintentos automáticos para la interrupción.

¿Qué sigue?