개요
도커 컨테이너는 리소스(CPU, MEM 등)에 제한이 없다.
즉 도커가 구동하는 호스트 머신의 자원을 100% 사용할 수 있다.
이렇게 된다면 컨테이너의 리소스 사용량이 증가하게 된다면 Host PC에 영향이 갈 수도 있고 여러 애플리케이션 간에 영향을 미칠 수 있으므로 컨테이너의 리소스를 제한하는 방법에 대해 알아보자
본론
- 컨테이너가 사용하는 자원량 stats 명령을 통해 확인해 보자 --no-stream 제거 시 지속적으로 확인 가능
- 위 이미지와 같이 메모리 LIMIT가 호스트 메모리 용량과 같음을 알 수 있다. (약 8G)
- 메모리 사용량 제한을 update 명령을 사용해 변경을 할 수 있다.
- CPU 사용량 제한을 변경해 보자
- --cpuset-cpus 옵섭을 사용해서 Host Pc의 CPU 중 특정 CPU만 컨테이너가 사용할 수 있도록 지정할 수 있다.
- --cpuset-cpus = 2, 3 : 3번 4번 CPU만 사용가능
- --cpuset-cpus = 1-3 : 2번, 3번, 4번 CPU만 사용가능
- --cpus 옵섭을 사용하면 CPU자원 사용을 몇 % 까지 허용할지를 지정할 수 있다.
- 단일 CPU 코어인 경우
- --cpus 1 : 100% 사용
- --cpus 0.5 : 50% 사용
- CPU 코어 2개인 경우
- --cpus 1: 각 코어를 50% 사용해서, 총 합이 100%가 되도록 CPU 사용
- --cpus 0.5 : 각 코어를 25% 사용해서 ,총 합이 50%가 되도록 CPU 사용
- 단일 CPU 코어인 경우
- --cpu-shares 옵션을 사용하면 한 코어에 여러 컨테이너가 실행될 때 CPU를 할당받는 비율을 설정할 수 있다.
- 컨테이너의 기본 값은 1024로 설정되어있다.
- docker run -d --cpuset-cpus=3 --cpu-shares 1024 my-db1
docker run -d --cpuset-cpus=3 --cpu-shares 256 my-db2- 두 컨테이너의 CPU가 어떤 비율로 할당받을지 설정할 수 있다.
- --cpuset-cpus 옵섭을 사용해서 Host Pc의 CPU 중 특정 CPU만 컨테이너가 사용할 수 있도록 지정할 수 있다.
'클라우드컴퓨팅' 카테고리의 다른 글
클라우드 컴퓨팅 기본모델, 핵심기술 (1) | 2024.04.19 |
---|---|
도커 Container Layer의 내용을 장기적으로 저장하기 (0) | 2024.04.07 |
도커 기초 (0) | 2024.03.31 |
가상화기술(도커, 가상머신) (0) | 2024.03.31 |
시스템 디자인/확장 (1) | 2024.03.30 |