취미가 좋다

[2-4] 컨테이너의 리소스 사용량 제한 본문

Sparta Coding Club/Docker

[2-4] 컨테이너의 리소스 사용량 제한

benlee73 2021. 7. 31. 10:06

컨테이너가 호스트의 리소스(disk, memory)를 너무 많이 쓰면 발생하는 문제들이 있다.

  • 메모리가 부족하게 되면, 호스트의 커널에서 잘 안쓰는 듯한 프로세스를 삭제하게 된다. 만약 이 프로세스가 필요한 프로세스였다면 문제가 된다.
  • 특정 컨테이너가 cpu를 과하게 사용하게 되면, 다른 컨테이너가 동작하지 않을 수 있다. 만약 프로세스가 살아있는지 검사하는 외부 프로세스가 있을 때, cpu를 할당받지 못해서 응답을 못하는 프로세스가 죽었다고 판단하는 문제가 발생할 수도 있다.
  • 디스크가 부족하게 되면, 새로운 프로세스를 생성하지 못하는 문제가 발생할 수 있다.
docker stats

stats 명령어로 각 컨테이너가 사용하고 있는 리소스를 확인할 수 있다.

 

memory 제한하기

docker run -i -m 10m python:3.8

-m 옵션으로 메모리 양을 제한할 수 있다.

 

cpu 제한하기

docker run -i --cpus=0.5 python:3.8

--cpus 옵션으로 cpu를 제한한다.

default 값이 1이기 때문에 0.5 값을 준다.

컨테이너 안에서 무한 루프를 실행하더라도, 컨테이너는 cpu의 절반만 사용한다.

 

아래의 링크를 통해 리소스를 제한하는 더 많은 방법을 확인할 수 있다.

https://docs.docker.com/config/containers/resource_constraints/

 

Runtime options with Memory, CPUs, and GPUs

 

docs.docker.com

'Sparta Coding Club > Docker' 카테고리의 다른 글

[2-6] docker 꿀팁  (0) 2021.07.31
[2-5] Docker-compose  (0) 2021.07.31
[2-3] 여러 컨테이너 연결  (0) 2021.07.30
[2-2] 원하는 volume을 컨테이너에 연결하기  (0) 2021.07.30
[2-1] 컨테이너의 데이터를 유지  (0) 2021.07.30
Comments