Administración de la memoria de recurso de computación
Cuando el agente de contenedores de Amazon ECS registra un recurso de computación en un entorno de computación, el agente debe determinar cuánta memoria tiene disponible el recurso de computación para reservarla para sus trabajos. Debido a la sobrecarga de memoria de la plataforma y a la memoria ocupada por el núcleo del sistema, este número es diferente de la cantidad de memoria instalada para las instancias de Amazon EC2. Por ejemplo, una instancia m4.large
tiene 8 GiB de memoria instalada. Sin embargo, esto no siempre se traduce en exactamente 8192 MiB de memoria disponible para los trabajos cuando se registra el recurso de computación.
Suponga que especifica 8192 MiB para el trabajo y que ninguno de sus recursos de computación tiene 8192 MiB o más de memoria disponible para cumplir este requisito. Entonces, el trabajo no se puede colocar en su entorno de computación. Si está utilizando un entorno de computación gestionado, AWS Batch debe lanzar un tipo de instancia mayor para dar cabida a la solicitud.
La AMI predeterminada de recursos de computación de AWS Batch también reserva 32 MiB de memoria para el agente de contenedor de Amazon ECS y otros procesos críticos del sistema. Esta memoria no está disponible para la asignación de trabajos. Para obtener más información, consulte Reservar memoria del sistema.
El agente de contenedor de Amazon ECS utiliza la función ReadMemInfo()
de Docker para consultar la memoria total disponible al sistema operativo. Linux proporciona utilidades de línea de comandos para determinar la memoria total.
ejemplo - Determinar la memoria total en Linux
El comando free devuelve la memoria total reconocida por el sistema operativo.
$
free -b
A continuación, se muestra un ejemplo de salida para una instancia m4.large
que ejecuta la AMI de Amazon Linux optimizada para Amazon ECS.
total used free shared buffers cached Mem:
8373026816
348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296
Esta instancia tiene 8373026816 bytes de memoria total. Esto significa que hay 7985 MiB disponibles para tareas.