목차
접기

이번 포스팅에서는 컨테이너에 CPU, Memory를 할당하는 방법을 설명합니다.
1. 컨테이너 메모리 할당
1-1 ) 컨테이너에 메모리 할당하기
컨테이너를 시작할때 컨테이너에서 사용 가능한 리소스 크기를 지정할 수 있습니다 :)
먼저 메모리를 100m 지정하여 컨테이너를 실행해봅시다.
[root@docker /]# docker run --name nginx -d -p 8080:80 --memory="100m" nginx
9fc9ccbf2a551a2bd4911d096a545b105c63762f9affb900390431a3df0402a0
docker inspect 명령어를 사용해서 컨테이너에 대한 자세한 정보를 확인할 수 있습니다.
컨테이너에 정말 메모리 할당량이 설정 되었는지 확인해봅니다.
[root@docker /]# docker container inspect nginx | grep Memory
"Memory": 104857600,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 209715200,
"MemorySwappiness": null,
1-2) 메모리 업데이트 하기
메모리를 100m에서 200m로 업데이트 합니다.
[root@docker /]# docker container update --memory='200m' nginx
nginx
메모리 스왑 크기도 500m로 변경합니다.
[root@docker /]# docker container update --memory-swap='500m' nginx
nginx
변경 내용이 잘 반영 되었는지 inspect 명령어를 사용하여 확인해봅니다.
[root@docker /]# docker container inspect nginx | grep Memory
"Memory": 209715200,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 524288000,
"MemorySwappiness": null,
* 메모리 뿐만 아니라, 여러가지 옵션을 업데이트할 수 있습니다.
docs.docker.com/engine/reference/commandline/container_update/
2. 컨테이너 CPU 할당
2-1) CPU 고정 할당 하기
특정 컨테이너에 고정된 CPU자원을 할당할수 있습니다.
컨테이너에 물리 CPU를 고정해서 할당해주는 명령어 입니다. --cpuset-cpus=1 뜻은 2번 CPU만 써라(고정할당) 라는 의미 입니다.
[root@docker /]# docker container run --name nginx -d -p 8080:80 --cpuset-cpus=1 nginx
37f6b2d8ff927c8357f3bc54aa2cea612b3baed5ca8c6bd493a77f6c20bfa48c
할당이 잘 되었는지 확인해볼까요?
1번 CPU가 할당 되었습니다.
[root@docker /]# docker container inspect nginx | grep Cpuset
"CpusetCpus": "1",
"CpusetMems": "",
2-2) CPU 개수 선택
특정 CPU를 고정해서 사용하도록 할당하는것 외 CPU를 최대 몇개까지 사용할 수 있도록 할지도 설정이 가능합니다.
할당해봅시다.
[root@docker /]# docker run --name nginx -d -p 8080:80 --cpus=2 nginx
6b8152cdb30970d639d6ce81aaec6f6d6a16a6159f3e68c4e28578215ca29a9e
컨테이너에 할당된 CPU를 확인해봅니다.
[root@docker /]# docker container inspect nginx | grep NanoCpu
"NanoCpus": 2000000000,
728x90