티스토리 뷰

728x90

docker 명령어를 통해 제한 할 수 있는 리소스

docker run 할 때 옵션을 사용하여 리소스를 제한 할 수 있다.

1️⃣ CPU

2️⃣ Memory

3️⃣ Disk I/O

 


1️⃣ CPU 제한하기

옵션 의미
--cpus 컨테이너에 할당 된 CPU core수를 지정
--cupset-cups 컨테이너가 사용할 수 있는 cpu나 core를 할당. cpu index는 0부터
--cpu-share 컨테이너가 사용하는 cpu 비중을 1024값을 기반으로 설정
$ docker run -d --cpus=".5" ubuntu
$ docker run -d --cpuset-cpus 0-3 ubuntu
$ docker run -d --cpus-shares 2048 ubuntu

2️⃣ Memory 제한하기

옵션 의미
--memory, -m 컨테이너가 사용 할 최대 메모리 양을 지정
--memory-swap 컨테이너가 사용할 스왑 메모리 영역에 대한 설정
값은 [메모리 +스왑]값. 생략시 메모리의 2배가 설정 됨
--memory-reservation --memory값보다 적은 값으로 구성하는 소프트 제한 값 설정
최소한으로 보장 받는 값
--oom-kill-disable OOM Killer가 프로세스 kill 하지 못하도록 보호
$ docker run -d -m 512m nginx
$ docker run -d -m 1g --memory-reservation 500m nginx
$ docker run -d -m 200m --memory-swap 300m nginx #메모리값 200m 스왑 100m
$ docker run -d -m 200m --oom-kill-disable nginx

3️⃣ Block I/O

옵션 의미
--blkio-weigh
--blkio-weigh-device
BlockIO 의 quota 설정을 할 수 있으며 100-1000까지 선택
default500
--blkio-read-bps
--blkio-write-bps
특정 디바이스에 대한 읽기와 쓰기 작업의 초당 제한을 kb, mb, gb 단위로 설정
--device-read-iops
--device-write-iops
컨테이너의 read/write 속도의 쿼터를 설정
초당 quota를 제한해서 I/O를 발생시킴. 0이상의 정수로 표시
초당 데이터 전송량 = IOPS*블럭크기(단위 데이터 용량)
$ docker run -d -it -rm -blkio-weight 100 ubuntu /bin/bash
$ docker run -d -it -rm -device-write-bps /dev/vda:1mb ubuntu /bin/bash
$ docker run -d -it -rm -device-write-bps /dev/vda:10mb ubuntu /bin/bash
$ docker run -d -it -rm -device-write-iops /dev/vda:1mb ubuntu /bin/bash
$ docker run -d -it -rm -device-write-iops /dev/vda:1mb ubuntu /bin/bash

 

 

docker 모니터링

$ docker status [option] [컨테이너명]  #실행중인 컨테이너의 런타임 통계를 확인
$ docker event #도커 호스트의 실시간 event정보를 수집해서 출력

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함