Cloud System Engineer

컨테이너 자원 할당 제한 본문

리눅스/docker

컨테이너 자원 할당 제한

클라우드 엔지니어 2021. 1. 31. 20:14

컨테이너를 생성할 때 아무런 옵션없이 생성하면 호스트의 자원을 무한정 제한 없이 쓸 수 있다.  이런 문제를 해결하기 위해 우리는 자원제한을 해야한다.  현재 컨테이너에 설정된 자원 제한을 확인하기 위해 다음과 같이 한다.
# docker inspect rsyslog_server
예컨대,  CPU 할당을 제한하려면 다음과 같이 한다.
# docker update (변경할 자원 제한) (컨테이너 이름)
# docker update --cpuset-cpus=1 rsyslog_server

 

1) 컨테이너 메모리 제한
도커에서 사용할 수 있는 메모리 사용량을 1GB로 제한해 보자.
# docker run -d --memory="1g" --name memory_1g nginx
# docker inspect memory_1g | grep \"Memory\"

 

 

다음과 같은 경우 메모리가 부족해 컨테이너가 실행되지 않는다.
# docker run -d --name memory_4m --memory="4m" mysql:5.7

 

 

기본적으로 컨테이너의 Swap 메모리는 호스트메모리의 2배로 설정되지만 별도로 지정할 수 있다.

# docker run -it --name swap_500m --memory=200m --memory-swap=500m ubuntu:14.04

 

 

2) 컨테이너 CPU 제한
--cpu-shares 옵션은 컨테이너에 가중치를 설정해 해당 컨테이너가 CPU를 상대적으로 얼마나 사용할 수 있는지를 나타낸다.  우선 1개의 CPU를 가지는 호스트에서 테스트해 본다.
# docker run -d --name cpu_1024 --cpu-shares 1024 alicek106/stress stress --cpu 1

 

 

# ps aux | grep stress // CPU 사용율은 100 가량 된다.

 

'리눅스 > docker' 카테고리의 다른 글

도커 이미지 배포  (0) 2021.02.03
도커 cpu 자원 할당  (0) 2021.02.01
컨테이너 로깅  (0) 2021.01.31
MAC VLAN 네트워크  (0) 2021.01.29
도커 네트워크  (0) 2021.01.29