Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Administración de la memoria en Instancia de contenedor
Cuando el agente de contenedor de Amazon ECS registra una instancia de contenedor en un clúster, el agente debe determinar la cantidad de memoria disponible en la instancia de contenedor para reservarla para las tareas. Debido a la sobrecarga de la memoria de la plataforma y a la memoria ocupada por
el kernel del sistema, este número es diferente de la cantidad de memoria instalada
que se anuncia para las instancias Amazon EC2. Por ejemplo, una instancia m4.large
tiene 8 GiB de memoria instalada. Sin embargo, esto no siempre significa que haya
exactamente 8192 MiB de memoria disponible para las tareas cuando se registra la instancia de contenedor.
Si especifica 8192 MiB para la tarea y ninguna instancia de contenedor tiene 8192 MiB o más de memoria disponible para satisfacer este requisito, la tarea no podrá situarse en el clúster.
También debe reservar algo de memoria para el agente de contenedor de Amazon ECS y otros procesos críticos del sistema en las instancias de contenedor, de modo que los contenedores de las tareas no compitan por la misma memoria y puedan desencadenar un error del sistema. 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 en el sistema operativo. Tanto Linux como Windows cuentan con herramientas 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
Este es un ejemplo de la salida para una instancia m4.large
que ejecuta la Amazon ECS-optimized Amazon Linux AMI.
total used free shared buffers cached Mem:
8373026816
348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296
Esta instancia tiene 8 373 026 816 bytes de memoria total, lo que se traduce en 7 985 MiB disponibles para tareas.
ejemplo - Determinar la memoria total en Windows
El comando wmic devuelve la memoria total reconocida por el sistema operativo.
C:\>
wmic ComputerSystem get TotalPhysicalMemory
Este es un ejemplo de la salida para una instancia m4.large
que ejecuta la Amazon ECS-optimized Windows AMI.
TotalPhysicalMemory
8589524992
Esta instancia tiene 8 589 524 992 bytes de memoria total, lo que se traduce en 8 191 MiB disponibles para tareas.
Reservar memoria del sistema
Si se ocupa toda la memoria de una instancia de contenedor con las tareas, es posible que las tareas tengan que competir por la memoria con los procesos críticos del sistema, lo que
podría desencadenar un error del sistema. El agente de contenedor de Amazon ECS dispone
de una variable de configuración denominada ECS_RESERVED_MEMORY
que se puede utilizar para quitar un número concreto de MiB de memoria del grupo
asignado a las tareas. Este es un mecanismo eficaz que permite reservar memoria para los procesos críticos
del sistema.
Por ejemplo, si se especifica ECS_RESERVED_MEMORY=256
en el archivo de configuración del agente, el agente registrará la memoria total
menos 256 MiB de esa instancia y las tareas de ECS no podrán asignar 256 MiB de memoria.
Para obtener más información sobre las variables de configuración del agente y cómo
definirlas, consulte Amazon ECSConfiguración del agente de contenedor de y Proceso de arranque de instancias de contenedor con datos de usuario de Amazon EC2.
Consultar la memoria de Instancia de contenedor
Puede ver la cantidad de memoria que registra una instancia de contenedor en la consola de Amazon ECS (o mediante la operación DescribeContainerInstances de la API). Si intenta maximizar la utilización de recursos proporcionando a las tareas la mayor cantidad de memoria posible para un determinado tipo de instancia, puede observar la memoria disponible para esa instancia de contenedor y asignar después a las tareas esa cantidad de memoria.
Para ver la memoria de un instancia de contenedor
-
Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/
. -
Elija el clúster donde se alojan las instancia de contenedors que desea ver.
-
Elija ECS Instances (Instancias ECS) y, en la columna Container Instance (Instancia de contenedor), la instancia de contenedor que desee ver.
-
En la sección Resources (Recursos), se muestra la memoria registrada y la memoria disponible para la instancia de contenedor.
El valor de Registered (Registrada) es la memoria que la instancia de contenedor registró en Amazon ECS cuando se lanzó por primera vez, mientras que el valor de Available (Disponible) es la memoria que aún no se ha asignado a ninguna tarea.