Docker를 사용하여 컨테이너에 할당 된 리소스를 어떻게 설정합니까?
이 질문의 제목에서 알 수 있듯이 docker (docker.io)를 사용하여 컨테이너에 대한 최대 디스크 / 메모리 및 CPU 사용량을 설정하고 싶습니다.
Docker를 사용하여 이것을 수행하는 방법이 있습니까?
메모리 / CPU
Docker는 이제 더 많은 리소스 할당 옵션을 지원합니다.
- -c 플래그를 통한 CPU 공유
- -m 플래그를 통한 메모리 제한
- --cpuset 플래그를 통한 특정 CPU 코어
한 번 봐 가지고 docker run --help
자세한 내용을.
lxc 백엔드 ( docker -d --exec-driver=lxc
) 를 사용하는 경우 보다 세분화 된 리소스 할당 체계를 지정할 수 있습니다. 예 :
docker run --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"\
--lxc-conf="lxc.cgroup.cpu.shares = 1234"
저장
저장 용량 제한은 현재 조금 더 까다 롭습니다. 자세한 내용은 다음 링크를 참조하십시오.
이제 여기에 설명 된대로 -c 옵션을 사용하여 컨테이너에 여러 CPU 공유를 할당 할 수 있습니다.
내가 아는 것처럼 메모리 제한 (예 : 5MB 제한 : docker run -m = 5242880 ... image) 만 전달할 수 있습니다. 그러나 docker.io의 사람들은 CPU 제한을 추가 할 계획이었습니다.
다음에 대한 참고 사항 -m / --memory
-
메모리 제한을 설정했지만 컨테이너가 예약하려는 메모리 양을 할당하지 않는 경우 기본 설정으로 이동하여 전체적으로 도커 앱에 예약되는 메모리를 조정합니다.
나는 OS X 에서이 '문제'에 부딪 쳤고 내가 지정할 때 컨테이너가 ~ 2G로 제한되는 이유를 잘 모르겠습니다. --memory=8g
참고 : PR 15078 은 중지 된 컨테이너 와 실행중인 컨테이너 (아마도 docker 1.10 ou 1.11)에 대한 리소스 변경 지원을 구현 (2015 년 12 월 )합니다.
우리는 리소스라고 부르는 것을 설정하기로 결정했습니다.이 리소스는 지금은 cgroup으로 구성되어 있으므로 PR # 18073 .
컨테이너에서 허용되는 유일한 변경 가능한 요소는 HostConfig에 있으며 정확하게 Resources에 있습니다 ( struct 참조 ).
resources := runconfig.Resources{
BlkioWeight: *flBlkioWeight,
CpusetCpus: *flCpusetCpus,
CpusetMems: *flCpusetMems,
CPUShares: *flCPUShares,
Memory: flMemory,
MemoryReservation: memoryReservation,
MemorySwap: memorySwap,
KernelMemory: kernelMemory,
CPUPeriod: *flCPUPeriod,
CPUQuota: *flCPUQuota,
}
- 명령은
set
.- 허용 된 변경 사항은 플래그로 전달됩니다. 예 :
--memory=1Gb --cpushare=…
(이 PR이 수행하는 것처럼).Resources
구조체 의 각 속성에 대해 하나의 플래그가 있습니다 (더 이상도 그 이하도 아닙니다).
를 통한 변경 docker set
은 지속되어야합니다.
즉, 이러한 변경 사항은 영구적입니다 (컨테이너의 JSON에서 업데이트 됨).
이 요점을 참조하십시오 : https://gist.github.com/afolarin/15d12a476e40c173bf5f
1) --cpu-share = 'relative-number'를 사용하여 CPU의 상대적 몫을 제공합니다.
2) 이제 cpus에 엄격한 제한을 둘 수 있습니다.
--cpuset=""
specify which cpus by numeric id, 0=first, n=nth cpu. specify by contiguous "1-5" or discontiguous "1,3,5" ranges.
기본 libcontainer 대신 LXC를 사용하는 경우 다음에서 지정할 수도 있습니다.
--lxc-conf=[]
(lxc exec-driver only) Add custom lxc options --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
램:
-m, --memory="" Memory limit (format: <number><optional unit>, where unit = b, k, m or g)
'Development Tip' 카테고리의 다른 글
Haskell의 Stream Fusion이란? (0) | 2020.11.18 |
---|---|
MSI 설정은 어떻게 생성합니까? (0) | 2020.11.18 |
node.js + mysql 연결 풀링 (0) | 2020.11.18 |
ggplot에 대한 curve ()와 동일 (0) | 2020.11.18 |
사전에서 defaultdict를 구성하는 방법은 무엇입니까? (0) | 2020.11.18 |