취미가 좋다
[2-4] 컨테이너의 리소스 사용량 제한 본문
컨테이너가 호스트의 리소스(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/
'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