1. 컨테이너 리소스 제한 방법
1) 상대적 가중치를 줘서 처리해준다.
2) docker command를 통해 제한할 수 있는 리소스
(1) CPU 리소스 제한
- —cpus
- 컨테이너에 할당할 CPU core 수 지정
- docker run -d —cpus=“.5” ubuntu:1.14
- cpu 1개 코어에 절반만큼 쓸 수 있다는 의미.
- —cpu-shares
- 다른 컨테이너에 비해 더 많은 양의 CPU 비중을 두고 싶을 때 사용
- docker run -d —cpu-shares 2048 ubuntu
- —cpuset-cpus
- 컨테이너가 사용할 수 있는 cpu나 코어를 할당. cpu index는 0부터 시작.
- docker run -d —cpuset-cpus 0-3 ubuntu
- cpu 코어 0,1,2,3 중에서 동작해야한다는 의미.
(2) Memory 리소스 제한
- 제한 단위는 b, k, m, g로 할 당
- —memory, -m
- 컨테이너가 사용할 최대 메모리 지정
- docker run -d -m 512m nginx
- —memory-swap
- 메모리+스왑. 생략시 메모리의 2배 설정
- docker run -d -m 200m —memory-swap 300m nginx
- 스왑 할 수 있음 메모리는 100m. 만약 생략하거나 200m면 2배인 400m 설정
- —oom-kill-disable
- OOM Killer가 프로세스 kill하지 못하도록 보호
- docker run -d -m 200m —tom-kill-disable nginx
- —memory-reservation
- 최대 x, 최소 y만큼 쓸 수 있다는 의미. 즉, y만큼을 보장 받음.
- docker run -d -m 1g —memory-reservation 500m nginx
- 500m만큼은 사용할 수 있도록 보장받는다는 의미.
(3) Block I/O 제한
- I/O 스케줄러가 컨테이너에게 동일하게 제공되는데 특정 컨테이너에게 더 많은 할당을 주기 위해서 사용.
- —blkio-weight, —blkio-weight-device
- block IO의 Quota를 설정할 수 있고 100~1,000까지 선택 가능.
- default 500
- docker run -it —rm —blkio-weight 100 ubuntu /bin/bash
- 100이라면.. 좀 적게 가져 가겠다는 의미.
- —device-read-bps or —device-write-bps
- 특정 디바이스에 대한 읽기와 쓰기 작업의 초당 제한을 kb, mb, gb 단위로 설정
- docker run -it —rm —device-write-bps /dev/vad:10mb ubuntu /bin/bash
- 작업 속도를 10mb로 하겠다 의미.
- —device-read-iops or —device-write-iops
- 컨테이너의 read, write 속도의 쿼터를 설정
- 즉, 초당 최대 읽을 수 있는 혹은 쓸 수 있는 속도의 쿼터를 정해서 I/O를 발생시킴.
- 0 이상의 정수로 표기
- 초당 데이터 전송량 = IOPS*블록 크기(단위 데이터 용량)
- docker run -it —rm —device-read-iops /dev/vda:100 ubuntu /bin/bash
- 속도의 크기(쿼터)가 100
(4) docker run —help
2. docker monitoring commands
1) docker stat [option] [container]
- 실행 중인 컨테이너의 런타임 통계 확인
2) docker events -f container=<name>
- 도커 호스트의 실시간 event 정보를 수집해서 출력
- docker image -f container=[name]
3. cAdvisor
- https://github.com/google/cadvisor
- docker 모니터링 툴
'Docker' 카테고리의 다른 글
컨테이너 데이터 영구보존 (0) | 2021.11.10 |
---|---|
Docker 모니터링 (0) | 2021.11.10 |
Docker 사용하기 (0) | 2021.11.05 |
컨테이너 보관 창고 (0) | 2021.11.05 |
Dockerfile 작성방법 (0) | 2021.11.05 |