Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

594
Vistas
Implementación de AWS ECS: memoria insuficiente

Configuré un clúster de AWS ECS con 3 instancias (m5.large), con una instancia en cada zona de disponibilidad (A, B y C). El Servicio se configura de la siguiente manera:

  • Tipo de servicio: RÉPLICA
  • Número de tareas: 3
  • Porcentaje mínimo saludable: 30
  • Porcentaje máximo: 100
  • Plantillas de ubicación: margen equilibrado de la A a la Z
  • Servicio AutoScaling: No.

En la definición de tareas, he usado lo siguiente:

  • Modo de red: awsvpc
  • Memoria de tareas: --
  • CPU de tarea: --

A nivel de contenedor, he configurado solo Memory Soft Limit:

  • Límite suave: 2048 MB
  • Límite duro: --

He usado awslogs para iniciar sesión. La configuración anterior funciona y cuando inicio el servicio, hay una ventana acoplable ejecutándose en cada una de las instancias. Las 'estadísticas de la ventana acoplable' en una de las instancias muestran lo siguiente:

 MEM USAGE / LIMIT 230MiB / 7.501GiB

Y la instancia del contenedor (Consola de ECS) muestra lo siguiente:

 Resources Registered Available CPU 2048 2048 Memory 7680 5632 Ports 5 ports

Los resultados anteriores son los mismos en las 3 instancias: se han reservado 2 GB de memoria (límite suave) y el límite de memoria superior es una memoria de instancia de casi 8 GB (sin límite estricto establecido). Todo funciona como se esperaba hasta ahora.

Pero cuando vuelvo a implementar el código (usando la implementación forzada) de Jenkins, aparece el siguiente error en el registro de Jenkins:

 "message": "(service App-V1-Service) was unable to place a task because no container instance met all of its requirements. The closest matching (container-instance 90d4ba21-4b19-4e31-c42d-d7223b34f17b) has insufficient memory available. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide.

En Jenkins, el trabajo aparece como 'Éxito', pero es la versión anterior del código la que se está ejecutando. Hay suficiente memoria disponible en las tres instancias. Además, cambié el porcentaje saludable mínimo a 30 con la esperanza de que ECS pueda detener el contenedor y volver a colocar el nuevo. Cualquier solución o sugerencia para depurar esto más a fondo será de gran ayuda.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Al igual que durante la implementación, el cronograma de ECS asignará la memoria según el límite flexible para cada contenedor que se pueda

 2048 * 3 = 6144 MB

que es menor que la memoria disponible en la instancia

 5632 (available memory) < 6144 (required memory)

Si está ejecutando una réplica en la misma instancia de contenedor de ECS, le recomendaré mantener un límite suave mínimo que debe ser menor o igual a 1 GB . ECS también lo sugiere.

Entonces, con esta configuración, también ejecutará la implementación azul-verde . Como esto, no hay nada de malo en mantener el límite suave mínimo , ya que el contenedor puede escalar para usar más memoria cuando se requiere, por lo que aplicar un poco de memoria grande para el límite suave no afecta el rendimiento.

No recomendaré bajar el Minimum Healthy Percent: 0 ya que disminuir el límite suave a 1 GB resolverá el problema .

O si desea mantener el mismo límite de memoria, reduzca el Minimum Healthy Percent

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda