Amazon ECS Linux 컨테이너 인스턴스 메모리 예약
Amazon ECS 컨테이너 에이전트가 클러스터에 컨테이너 인스턴스를 등록할 때 에이전트는 컨테이너 인스턴스에서 태스크에 대해 예약할 수 있는 메모리 크기를 결정해야 합니다. 플랫폼 메모리 오버헤드와 운영 체제 커널이 차지하는 메모리로 인해 이 수치가 Amazon EC2 인스턴스에 대해 공급된 설치된 메모리 용량과 다르기 때문입니다 예를 들어, m4.large
인스턴스의 설치된 메모리는 8GiB입니다. 그러나 컨테이너 인스턴스 등록 시 항상 작업에 정확히 8,192MiB의 메모리를 사용할 수 있는 것은 아닙니다.
Amazon ECS 컨테이너 에이전트는 ECS_RESERVED_MEMORY
라는 구성 변수를 제공합니다. 이를 사용하여 작업에 할당된 풀에서 지정된 메모리 크기(MiB)를 제거할 수 있습니다. 이를 통해 중요 시스템 프로세스에 대한 메모리를 효율적으로 예약합니다.
컨테이너 인스턴스의 모든 메모리를 작업에 사용하는 경우 작업 및 메모리의 중요 시스템 프로세스 경합으로 인해 시스템 오류가 발생할 수 있습니다.
예를 들어, 컨테이너 에이전트 구성 파일에서 ECS_RESERVED_MEMORY=256
을 지정한 경우 에이전트는 인스턴스에 대해 총 메모리에서 256MiB를 제외하고 등록하며, 이 256MiB의 메모리는 ECS 작업에 할당될 수 없습니다. 에이전트 구성 변수 및 이를 설정하는 방법에 대한 자세한 정보는 Amazon ECS 컨테이너 에이전트 구성 및 데이터 전달을 위한 Amazon ECS Linux 컨테이너 인스턴스 부트스트래핑 섹션을 참조하세요.
작업에 대해 8,192MiB를 지정하고, 이 요구 사항을 충족하기 위해 8,192MiB 이상의 메모리를 사용할 수 있는 컨테이너 인스턴스가 없는 경우 작업은 클러스터에 배치될 수 없습니다. 관리형 컴퓨팅 환경을 사용 중인 경우 AWS Batch는 요청을 수용하기 위해 더 큰 인스턴스 유형을 시작해야 합니다.
또한, Amazon ECS 컨테이너 에이전트 및 컨테이너 인스턴스의 기타 핵심 시스템 프로세스에 대해 일부 메모리를 예약해야 합니다. 그래야 작업의 컨테이너가 동일한 메모리와 경합하지 않고, 그에 따라 시스템 오류가 발생하지 않을 수 있습니다.
Amazon ECS 컨테이너 에이전트는 Docker ReadMemInfo()
함수를 사용하여 운영 체제가 사용할 수 있는 전체 메모리를 쿼리합니다. Linux 및 Windows 모두 명령줄 유틸리티를 제공하여 총 메모리를 결정합니다.
예 - Linux 총 메모리 결정
free 명령은 운영 체제가 인식한 총 메모리를 반환합니다.
$
free -b
Amazon ECS 최적화된 Amazon Linux AMI를 실행하는 m4.large
인스턴스의 출력 예.
total used free shared buffers cached Mem:
8373026816
348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296
이 인스턴스의 총 메모리는 8,373,026,816바이트로, 이는 태스크에 대해 7,985MiB를 사용할 수 있음을 의미합니다.
예 - Windows 총 메모리 결정
wmic 명령은 운영 체제가 인식한 총 메모리를 반환합니다.
C:\>
wmic ComputerSystem get TotalPhysicalMemory
Amazon ECS 최적화 Windows Server AMI를 실행하는 m4.large
인스턴스의 출력 예제.
TotalPhysicalMemory
8589524992
이 인스턴스의 총 메모리는 8,589,524,992바이트로, 이는 작업에 대해 8,191MiB를 사용할 수 있음을 의미합니다.
컨테이너 인스턴스 메모리 보기
컨테이너 인스턴스가 Amazon ECS 콘솔(또는 DescribeContainerInstances API 작업)에 등록하는 메모리 크기를 확인할 수 있습니다. 특정 인스턴스 유형에 대해 가능한 한 많은 메모리를 작업에 제공하여 리소스 사용률을 극대화하려는 경우 해당 컨테이너 인스턴스에 사용 가능한 메모리를 관찰한 다음, 작업에 그만큼의 메모리를 할당할 수 있습니다.
컨테이너 인스턴스 메모리를 보는 방법
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
탐색 창에서 클러스터를 선택하고 컨테이너 인스턴스를 호스팅하는 클러스터를 선택합니다.
-
인프라를 선택한 다음, 컨테이너 인스턴스에서 컨테이너 인스턴스를 선택합니다.
-
리소스 섹션에서는 컨테이너 인스턴스에 대해 등록된 메모리와 사용 가능한 메모리를 보여줍니다.
등록됨 메모리 값은 처음 시작할 때 Amazon ECS에 등록된 컨테이너 인스턴스의 값이며, 사용 가능 메모리 값은 작업에 할당되지 않은 값입니다.