728x90
컨테이너 리소스 제한
기본으로 컨테이너는 호스트 하드웨어 리소스 사용제한을 받지 않음, 하지만 Docker 커맨드를 통하여 아래 리소스를 제한할 수 있음
- CPU
- Memory
- Disk I/O
docker run --help 명령어를 통해 확인 가능함
-m, --memory bytes Memory limit
--memory-reservation bytes Memory soft limit
--memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap
--memory-swappiness int Tune container memory swappiness (0 to 100) (default -1)
--mount mount Attach a filesystem mount to the container
..
-c, --cpu-shares int CPU shares (relative weight)
--cpus decimal Number of CPUs
--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
..
-a, --attach list Attach to STDIN, STDOUT or STDERR
--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--blkio-weight-device list Block IO weight (relative device weight) (default [])
Memory 리소스 제한
제한 단위는 b, k, m, g로 할당
--memory, -m | 컨테이너가 사용할 최대 메모리 양 지정 |
--memory -swap | 컨테이너가 사용할 스왑 메모리 영역에 대한 설정 메모리+스왑. 생략시 메모리의 2배가 설정됨 |
--memory-reservation | --memory 갑솝다 적은 값으로 구성하는 소프트 제한 값 설정 |
--oom-kill-disable | OOM Killer가 프로세스 kill 하지 못하도록 보호 |
- docker run -d -m 512m nginx:1.14 : nginx 기동시 할당된 메모리 512m로 제한
- docker run -d -m 1g --memory-reservation 500m nginx:1.14 : nginx 기동시 적어도 500m 메모리사용 보장받으면서 최대 1g로 제한
- docker run -d -m 200m --memory-swap 300m nginx1.14 : 메모리 200m 까지 사용 swap 사이즈 300m 까지 사용(실제 swap 사이즈는 100m, swap 300m은 메모리 + 실제 swap)
- docker run -d -m 200m --oom-kill-disable nginx:1.14 : OOM killer가 nginx 프로세스 kill 하지못함
CPU 리소스 제한
--cpus | 컨테이너에 할당할 CPU core수를 지정 --cpus="1.5" 컨테이너가 최대 1.5개의 CPU파워 사용가능 |
--cpuset-cpus | 컨테이너가 사용할 수 있는 CPU나 코어를 할당, cpu index는 0부터, --cpuset-cpus=0-4 |
--cpu-share | 컨테이너가 사용하는 CPU비중을 1024 값을 기반으로 설정 --cpu-share 2048 기본값보다 두배 많은 CPU 자원을 할당 |
- docker run -d --cpus=".5" ubuntu:1.14 : 한개 코어의 절반만 사용
- docker run -d --cpu-shares 2048 ubuntu:1.14 : 다른 컨테이너보다 cpu를 두배 사용
- docker run -d --cpuset-cpus 0-3 ubuntu:1.14 : 코어 0번부터 3까지 사용하게 제한
Block I/O 제한
--blkio-weight --blkio-weight-device |
Block IO의 Quota를 설정할 수 있으며 100 ~ 1000까지 선택 default 500 |
--device-read-bps --device-write-bps |
특정 디바이스에 대한 읽기와 쓰기 작업의 초당 제한을 kb, mb,gb 단위로 설정 |
--device-read-iops --device-write-iops |
컨테이너의 read/write 속도의 쿼터를 설정 초당 quota를 제한해서 I/O를 발생시킴, 0 이상 정수로 표기 초당 데이터 전송량 = IOPS * 블럭크기 (단위 데이터 용량) |
Docker 리소스 확인
- docker stats : 실행중인 컨테이너 런타임 통계 확인
- docker event : 도커 호스트의 실시간 event정보를 수집해서 출력
'DOCKER' 카테고리의 다른 글
[DOCKER] 도커컴포즈 (0) | 2021.10.28 |
---|---|
[DOCKER] 컨테이너 볼륨 (0) | 2021.10.28 |
[DOCKER] 계정 관리자 권한 부여 (0) | 2021.10.26 |
[DOCKER] 삭제방법 (0) | 2021.10.26 |
[DOCKER] 설치 (0) | 2021.10.26 |