도커의 리소스?
- 도커의 자원 관리 대상은 CPU, Memory, Block I/O 등이 해당
- 일반적으로 명령어로 직접 관리는 비추.
- 컨테이너 오케스트레이션도구인 Docker Swarm이나 Kubernetes등과 연동하여 관리하기.
- 자세한 명령어 옵션과 설명은 man docker-run에서 확인 가능
Q. 관리해야 하는 이유
컨테이너는 호스트 하드웨어 리소스에 대한 사용 제한X
1. 메모리 리소스 제한
docker run -m 크기 이미지명
#예
docker run -d -m -512m nginx
→ 최대 메모리 사용량을 512MB로 설정
docker run -d -m 200m --memory-swap 300m nginx
→ 메모리 사용량은 200MB제한, 스왑 메모리는 100MB로 제한
2. CPU제한
docker run --cpus
3. Block I/O 제한
q. Block I/O란?
I/O 작업이 진행되는 동안 유저 프로세스가 자신의 작업을 중단한채 I/O 가 끝날 때까지 대기하는 방식이다.
#예
$ docker run -it --rm --blkio-weight 100 ubuntu /bin/bash
→ 블록 IO는 보통 500으로 설정되는데, 다른 컨테이너와 비교해서 1/5 정도의 낮춰지게 된다.
$ docker run -it --rm --device-write-bps /dev/sda:1mb ubuntu /bin/bash
→블록 write I/O를 초당 1MB 속도로 제한한다.
$ docker run -it --rm --device-write-iops /dev/sda:10 ubuntu /bin/bash
→ 초당 데이터 전송개수는 10개로 제한한다. 초당 데이터 전송량은 iops*블록크기(단위 데이터 용량)로 계산한다.
'프로젝트 > 클라우드 스터디' 카테고리의 다른 글
[3회차]도커 리소스 모니터링 docker stats (1) | 2025.02.04 |
---|---|
[3회차]docker 네트워크 관련 명령어(network create , network connect, network rm ) (1) | 2025.02.04 |
[3회차]도커 네트워크 개념 (1) | 2025.02.04 |
[2회차]docker 볼륨관리 (1) | 2025.02.03 |
[2회차]04. Docker 컨테이너 기본 개념 + 컨테이너 관리 명령어 (0) | 2025.01.23 |