Maximiza la flexibilidad y la eficiencia de los clústeres y los trabajos

En esta página, se proporcionan prácticas recomendadas y estrategias de programación para ayudarte a diseñar clústeres de Managed Service para Apache Spark resistentes que maximicen la disponibilidad de recursos en todas las Cloud de Confiance by S3NS regiones, reduzcan las demoras de aprovisionamiento y aprovechen las optimizaciones de rendimiento y costos.

Descripción general de la disponibilidad de recursos

La ejecución de trabajos en clústeres rígidos de Managed Service para Apache Spark crea puntos únicos de falla que pueden provocar interrupciones en los trabajos y fallas en los clústeres y los trabajos debido a la falta de disponibilidad localizada o a las demoras de aprovisionamiento.

El riesgo de falta de disponibilidad de recursos es alto para los clústeres configurados con cualquiera de los siguientes antipatrones rígidos:

  • Ubicación de zona fija: Codificación de una sola zona con la marca o el campo zone en lugar de permitir que AutoZone de Managed Service para Apache Spark coloque el clúster de forma dinámica en la zona óptima. Este antipatrón impide que la creación de clústeres use recursos de procesamiento disponibles en zonas adyacentes.
  • Un solo tipo o generación de máquina por rol de nodo: Restricción de los roles de nodo a una sola generación o tipo de máquina. Este antipatrón impide que el clúster recurra a alternativas.
  • Escalamiento vertical con menos VMs grandes: Escalamiento vertical de clústeres para depender de una pequeña cantidad de formas de VM grandes. Este antipatrón restringe la flexibilidad de programación.
  • Creación de clústeres de todo o nada: Requiere que todos los nodos trabajadores se aprovisionen de forma simultánea en lugar de usar la creación parcial de clústeres combinada con el ajuste de escala automático. Este antipatrón provoca que falle la creación de clústeres si no se puede asignar un nodo trabajador debido a la falta de disponibilidad temporal de recursos.
  • Picos de programación: Activación de grandes canalizaciones por lotes durante las horas de mayor uso, lo que aumenta la contención regional.

La disponibilidad de recursos es la práctica de diseñar trabajos para que sean flexibles en cuanto al hardware, multizonales y escalables. Si desacoplas los clústeres de las configuraciones rígidas y habilitas las conmutaciones por error de varias familias de máquinas, puedes aumentar las tasas de éxito de creación, minimizar la latencia de inicio y lograr de forma coherente los ANS.

Recomendaciones de disponibilidad de recursos

Adopta las siguientes optimizaciones para mejorar la disponibilidad de recursos y la estabilidad de los trabajos:

Usa VMs flexibles

La función de VMs flexibles te permite especificar una lista clasificada de tipos de VM para los nodos trabajadores principales, secundarios y principales. Esto aumenta las tasas de éxito de creación mediante la evaluación de los tipos de VM enumerados y la selección automática de zonas con capacidad disponible.

Recomendación: Usa VMs flexibles con anulaciones de disco, lo que te permite especificar diferentes tipos de discos, como hiperdisco y disco persistente, para diferentes familias de máquinas candidatas en la misma política de clúster. También puedes combinar familias de máquinas de Gen2 y Gen4 dentro de una sola política para escalar trabajos en un grupo más amplio y omitir los límites de capacidad.

Para los trabajos que usan máquinas N2 y N2D, considera las siguientes clasificaciones:

  • Clasificación 0: N2, N2D
  • Clasificación 1: N4, N4D (con hiperdisco balanceado)
  • Clasificación 2: C4, C4D, C3, C3D (con hiperdisco balanceado). Se pueden usar SSDs locales con C4 y C4D, pero, por lo general, 8 o 16 núcleos solo admiten 1 o 2 SSDs locales.
  • Clasificación 3: E2 (rendimiento más bajo; úsalo solo si es necesario)

Por ejemplo, para los trabajos que usan n2d-standard-16, las clasificaciones son las siguientes:

  • Clasificación 0: n2d-standard-16, n2-standard-16
  • Clasificación 1: n4-standard-16, n4d-standard-16
  • Clasificación 2: c4-standard-16, c4d-standard-16, c3-standard-22, c3d-standard-16
  • Clasificación 3: e2-standard-16

Cuando uses VMs flexibles, ten en cuenta los siguientes factores:

  • Compatibilidad con tipos de discos mixtos: Los tipos de máquinas de Gen3 y Gen4 solo admiten tipos de discos Hyperdisk y no admiten tipos de discos persistentes. Cuando combines Gen2 y Gen4, especifica un diskConfig para cada selección de instancia en instanceFlexibilityPolicy. Para obtener más información, consulta Anulaciones de disco.

  • Cuotas de recursos: Cuando defines una política de VMs flexibles con tipos de conmutación por error, Compute Engine verifica las cuotas de todos los tipos y discos candidatos en la región. Asegúrate de que tu proyecto tenga cuotas de procesamiento y disco suficientes asignadas para todos los elementos configurados.

  • Descuentos de Compute Engine: Aprovecha los descuentos por compromiso de uso (CUD) flexibles para aplicar ahorros basados en el gasto en varias familias y regiones de VM.

  • Precios: Usa la Cloud de Confiance calculadora de precios para comparar los costos de cada clasificación en tu política.

Para obtener plantillas de configuración y ejemplos de implementación, consulta lo siguiente:

Usa la ubicación de AutoZone

Usa la ubicación de AutoZone para permitir que Managed Service para Apache Spark seleccione la mejor zona para aprovisionar recursos. Si usas redes de nube privada virtual (VPC) personalizadas, asegúrate de que la subred tenga suficientes direcciones IP en todas las zonas regionales.

Usa formas de máquinas más pequeñas

Diseña trabajos para que se escalen horizontalmente en tipos de máquinas más pequeños (4, 8 o 16 núcleos) en lugar de escalar verticalmente con VMs más grandes. Los tamaños de VMs más pequeños tienen una mayor disponibilidad en todas las zonas, lo que ayuda a evitar demoras en la creación.

  • Revisa y rediseña los trabajos que usan tipos de máquinas grandes para los nodos del controlador.
  • Revisa los trabajos que solo ejecutan nodos del controlador sin nodos trabajadores (clústeres de un solo nodo). Los trabajos que se ejecutan en clústeres de un solo nodo no pueden escalar verticalmente de forma dinámica y vincular la ejecución a un solo host físico.

Usa el ajuste de escala automático de clústeres

Usa el ajuste de escala automático de clústeres con una cantidad máxima suficiente de instancias para administrar la capacidad de los trabajos con variabilidad de recursos (picos).

Usa la creación parcial de clústeres con ajuste de escala automático

Usa la creación parcial de clústeres, que te permite especificar una cantidad mínima de trabajadores principales, con ajuste de escala automático. Si el clúster comienza con menos trabajadores de los solicitados, el ajuste de escala automático puede agregar más trabajadores de forma dinámica una vez que los recursos estén disponibles.

Programa trabajos durante las horas de menor demanda

Programa trabajos durante las horas de menor demanda, como el mediodía y los fines de semana. Programa en horarios no estándar, por ejemplo, a las 10:07 en lugar de a las 10:00, para evitar picos de programación.

¿Qué sigue?