2019. 9. 2. 10:32ㆍOS & Server/Docker
Docker Container를 사용하다보면 다중 컨테이너를 사용하게 되는 경우가 빈번합니다.
예로 들면, 하나의 사이트를 만들다보면 각 역할별로 분할시켜버리면...
- Front Container
- Back Container
- Database
- Celery
- Caching Server
- Web Server
등 더 많게 쪼개는 분들도 봤습니다만 그렇게 까진 못하겠더라구요.
뭐 예시로 데이터베이스의 경우 메모리나 cpu가 어느정도 받쳐줘야하는데 다른 컨테이너가
많은 사용자 또는 잘못된 코드나 요청으로 혹은 해커의 공격으로 인하여
문제가 생길경우 평소보다 높은 자원량을 요구하여 데이터베이스 컨테이너가 자원이 부족한 현상으로 인해
컨테이너가 종료되는 현상이 생길 수 있죠.
이럴때를 대비한다고 해야하나
컨테이너간 자원을 제한해서 다른 컨테이너의 요구 상한치를 넘보지 못하도록 하는 방법이 도커에선 존재합니다.
물론 컴포즈에서도 가능하고
너무 많은 사용자 트래픽으로 인해 생기는 문제라면 차라리 제한을 하되 도커스웜을 사용하여
분산 병렬 노드화를 시키는게 더욱 효율성이좋고... 돈이 많다면 서버사양을 흠흠..
저는 현재 Docker Compose Version2를 사용하고 있으며,
version2를 기준으로 내용을 작성할텐데 Version3의 경우는 추후에 언젠가... 올리도록 하겠습니다.
version3은 생각보다 자료가 많은편에 속하지만
version2의 경우는 그렇지 못하더군요.
하지만 킹갓제네럴엠페러..
갓 도커성님은 컴포즈 공식문서에도 Version1 / 2 / 3 모두 작성이 되어 있었습니다.
유저들이 SEO를 너무 잘해서 공식문서가 최상단에 안뜨는 불편한 현실..
? 뜨네요
어쨋든 https://docs.docker.com/compose/compose-file/compose-file-v2/
에서 Version2의 관련된 공식문서 내용을 보면
정확히는 2.1 - 2.2 부터 cpu 관련 제어를 사용할 수 있답니다.
저 옵션들을 전부 쓰고싶다면 version을 2.2로 명시하는게 더 좋겠네요.
cpu_count | 코어 수 제한 |
cpu_percent | 각 코어별 사용률 전체 비율을 퍼센트로 제한 |
cpus | cpus를 0.5라고 할당하면 50%로 제한 |
cpu_shares |
cpu 가중치라고 하는데 기본값은 1024 입니다. 2048을 주면 2배를 사용하고 4096이면 4배...
뭐 저한테는 그닥 필요가 없는 것 같군요 우선순위 중요도를 따질 때 사용하는 것 같습니다. version3에서는 옵션은 있지만 cpus를 통해서 걍 한번에 해라! 라고 하는것 같아요 |
뭐 cpu_quota나 cpuset은 별로 안중요한 거 같으니깐 패스
docker compose는 오히려 version3 보다 version2가 명시가 쉽습니다.
version: '2'
services:
overmap:
build:
context: ./overmap
dockerfile: dockerfile
ports:
- 80:80
- 443:443
restart: always
volumes:
- ./overmap:/overmap
cpus: ".25"
가장 아래에 추가한 cpus만 보면 되는것이죠. 정말 쉽습니다.
version3은 뭔
deploy에 그 밑에 resources에 그 밑에 limits에서... 할당해야 하는데
나중가면 오히려 그게 json depth가 깊어지니 키 값으로 찾을때는 편할 수는 있겠네요.
자원에 관련한 키를 통해서 조회를 하니까요?
메모리 제한도 비슷합니다.
메모리 제한 보러가기 : https://gmyankee.tistory.com/233
'OS & Server > Docker' 카테고리의 다른 글
Ubuntu docker cgroupfs 오류 (0) | 2020.02.10 |
---|---|
docker compose memory limit / 도커 컴포즈 메모리 제한 (0) | 2019.09.03 |
[Docker](도커) #05. Docker Compose Install on Ubuntu 18.04 LTS (0) | 2019.08.21 |
[Docker](도커) #04. Docker Install on Ubuntu 18.04 LTS (0) | 2019.08.20 |
docker log 압축과 제거 (0) | 2019.08.09 |