컨테이너 하드웨어 리소스 제한 관리하기
- 기본으로 컨테이너는 호스트 하드웨어 리소스의 사용 제한을 받지 않는다. 하지만 컨테이너가 필요로하는 만큼의 리소스만 할당해야한다.
- Docker Command 를 통해 제한할수 있는 리소스 : CPU, Memory, DISK IO
- docker run —help 를 통해 확인 가능하다.
Memory 리소스 제한
- 제한 단위는 b,k, m,g로 할당
#nginx를 실행할때 최대로 사용할 수있는 메모리 양을 512m로 지정
docker run -d -m 512m nginx:1.14
#nginx는 항상 500m사용을 보장받고, 최대 1g 까지 쓸 수있다.
docker run -d -m 1g --memory-reservation 500m nginx:1.14
#메모리 스왑 : 실제 메로리가 아닌 디스크를 메모리 처럼 사용하는 것
#실제 스왑 메모리는 300 -200 으로 100m까지 사용할 수있다.
docker run -d -m 200m --memory-swap 300m nginx:1.14
#실제로 메모리가 부족해도 이 프로세스를 kill하지 않도록 함
docker run -d -m 200m --oom-kil-disable nginx:1.14
- —memory, -m : 컨테이너가 사용할 최대 메모리 양을 지정
- —memory-reservation: —memory 값보다 적은 값으로 구성하는 소프트 제한 값 설정
- —memory-swap : 컨테이너가 사용할 스왑 메로리 영역에 대한 설정 , 메모리 + 스왕. 생략 시 메모리의 2배가 설정
- —oom-kill-disable : OOM Killer 가 프로세스 kill하지 못하도록 보호.
- Oit Of Memory Killer : 리눅스 커널에서 실제 메모리 사이즈가 부족하게 되면 Out Of Memory Killer를 동작시켜 프로세스를 킬 한다.
CPU 리소스 제한
#cpu 1개의 절반만 사용
docker run -d --cpus=".5" ubuntu:1.14
#기본 값보다 두배 많은 CPU자원 할당
docker run -d --cpu-shares 2048 ubuntu:1.14
#0,1,2,3번 CPU 중에서 사용
docker run -d --cpuest-cpus 0-3 ubuntu:1.14
- —cpus :컨테이너에 할당할 CPU core 수를 지정
- —cpuset-cpus :컨테이너가 사용할 수있는 CPU나 코어를 할당. cpu index는 0부터
- —cpu-share: 컨테이너가 사용하는 CPU 비중을 1024 값을 기반(디폴트)으로 설정, 즉, —cpu-share 2048은 기본값보다 두배 많은 CPU 자원을 할당한다.
'CS > 서버' 카테고리의 다른 글
도커 컴포즈(Docker Compose) (0) | 2023.05.25 |
---|---|
도커 데이터 보존하기 - Bind Mount/Volume (0) | 2023.05.24 |
Docker로 mysql 설치 및 접속하기 (0) | 2023.05.23 |
Dockerfile 이용해서 이미지 만들고, 도커 허브에 배포하기 (0) | 2023.05.23 |
AWS - EC2, Elastic Beanstalk, Fargate, ECR, Lambda, ECS (1) | 2023.05.08 |