내 리소스 제한이 준수되지 않는 이유는 무엇입니까?

내 리소스 제한이 준수되지 않는 이유는 무엇입니까?

내 시스템의 Docker 컨테이너에 사용 가능한 CPU 리소스를 제한하고 싶습니다. 단일 컨테이너의 리소스 소비를 제한하고 싶지 않고 모든 컨테이너의 리소스 소비를 제한하고 싶습니다.

먼저 슬라이스를 만들었습니다.

# /etc/systemd/system/limit-docker.slice
[Unit]
Description=Slice that limits docker resources
Before=slices.target

[Slice]
CPUAccounting=true
CPUQuota=300%

그런 다음 슬라이싱을 구성했습니다./etc/docker/daemon.json

{
   "cgroup-parent": "/limit-docker.slice"
}

그런 다음 systemctl을 다시 로드하고 docker를 다시 시작합니다.

systemctl daemon-reload
systemctl restart docker

그런 다음 컨테이너를 시작하고 systemd-cgls를 사용하여 컨테이너가 제어 그룹의 일부인지 확인했습니다.

-.slice
├─limit-docker.slice
│ └─49d07f9319edfd727d4e6211d5d41c15daf49bc57174100d1ab80e2352170d7e
│   └─13685 python app.py execute 

하지만 내가 지정한 리소스 제한이 준수되지 않았습니다.

Control Group                                                       Tasks   %CPU   Memory   
/limit-docker.slice                                                    34  388.3     3.5G         
/limit-docker.slice/4…211d5d41c15daf49bc57174100d1ab80e2352170d7e      34  388.3     3.3G 

systemd 로그에 cgroup에 대한 몇 가지 경고가 표시됩니다.

level=warning msg="Your kernel does not support swap memory limit"
level=warning msg="Your kernel does not support cgroup rt period"
level=warning msg="Your kernel does not support cgroup rt runtime"

내 이해는 이러한 cgroup이 내가 달성하려는 것과 아무 관련이 없으며 지원되지 않는 것은 중요하지 않다는 것입니다. 맞습니까?

Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.4.182-xenomai-2 
systemd: 232
Docker: 18.06.1-ce

내 리소스 제한이 무시되는 이유는 무엇입니까? 이 문제를 해결하려면 어떤 옵션이 있어야 합니까?

답변1

이 문제로 어려움을 겪는 사람을 위해 대신

systemctl daemon-reload
systemctl restart docker

이 작업을 수행

systemctl daemon-reload
systemctl start limit-docker.slice
systemctl restart docker

관련 정보