LXC CPU.shares가 작동하지 않습니다

LXC CPU.shares가 작동하지 않습니다

어제부터 LXC 컨테이너 문제와 컨테이너당 CPU 리소스 제한 문제로 어려움을 겪고 있습니다. 내 경우에는 다음과 같은 명령이 lxc-cgroup -n srv50 cpu.shares 100결과를 가져오지 않습니다. 컨테이너는 여전히 CPU를 동일하게 사용합니다.

저는 Centos 7과 LXC 1.0.8을 사용하고 있습니다. 내가 확인한 모든 기계는 동일한 효과를 가졌습니다. 설정은 cpu.shares아무 것도 하지 않았습니다.

이것은 내 2코어 VM의 systemd-cgtop 화면입니다.

Path                                                                             Tasks   %CPU   Memory  Input/s Output/s

/                                                                                  178  199.7   360.8M        -        -
/lxc                                                                                 -  198.0    16.8M        -        -
/lxc/srv51                                                                           7   99.8     8.4M        -        -
/lxc/srv50                                                                           7   98.2     8.4M        -        -
/system.slice/NetworkManager.service                                                 2      -        -        -        -
/system.slice/auditd.service                                                         1      -        -        -        -

컨테이너 는 100으로 srv50설정 되고 50으로 설정됩니다. 두 컨테이너 모두 command 를 실행합니다 . 한 컨테이너는 66%를 차지하고 다른 컨테이너는 133%(또는 이와 유사한 수준)를 차지할 것으로 예상했지만 둘 다 100%를 사용하고 있었습니다.cpu.sharessrv51dd if=/dev/urandom | bzip2 -9 >> /dev/null

팁. 어떤 컨테이너가 가장 많은 CPU를 사용하고 있는지 찾으려고 할 때 htop도구에서 모든 컨테이너가 동일한 cgroup을 가지고 있음을 발견했습니다. :name=systemd:/user.slice/user-0.slice/session-1.scope?- 이것이 정확한지는 확실하지 않습니다. - 방금 이것을 발견했습니다.

메모리 제한은 작동하지만 CPU는 작동하지 않습니다.

방금 cgroup으로 테스트를 마쳤고 어떤 프로세스도 설정할 수 없었기 때문에 cpu.share(그룹으로 이동하여) 일관성이 있습니다. 일부 커널 스위치가 누락된 것 같습니다.

2: 내 예에는 버그가 있습니다. 2코어 머신에서 로드 차이를 확인하려면 각 컨테이너에 100%로 실행되는 프로세스가 2개 이상 있어야 합니다. 어쨌든 이것은 문제가 되지 않습니다.

답변1

예, 이 경우 문제는 이 기능을 테스트하는 것입니다. 예상대로 작동합니다. 코어가 2개인 다른 클라우드 VM에서 내가 겪은 유일한 문제입니다. 필요하지 않기 때문에 더 이상 생각하지 않습니다. :) 건배!

관련 정보