Systemd-nspawn 컨테이너의 CPU 사용량 제한이 작동하지 않습니다.

Systemd-nspawn 컨테이너의 CPU 사용량 제한이 작동하지 않습니다.

저는 Yocto의 임베디드 Linux 환경에서 systemd-nspawn(systemd 버전 237)을 사용하고 있습니다.

/etc/systemd/system/systemd-nspawn\@.service.d/override.conf파일 내용입니다

ExecStart=/usr/bin/systemd-nspawn --quiet --boot --link-journal=try-guest --machine=%i -n --property=CPUQuota=10%

컨테이너 내부에서 "sha1sum /dev/zero &" 또는 "for i in 1 2 3 4; do while : ; do : ; did & done"을 사용하여 CPU를 로드하려고 하는데 호스트의 최상위 명령에 다음이 표시됩니다. 항상 총 50%의 CPU 사용량을 차지합니다(4개의 sh 프로세스와 1개의 sha1sum 프로세스, sha1sum 프로세스만 시작되면 각 프로세스는 단독으로 50%(10%가 아닌 경우)를 사용합니다)

이 50% 제한이 다른 설정에서 비롯된 것인지 이해할 수 없습니다. CPU 할당량이 작동하지 않는 이유

답변1

~부터c그룹 v2이제 권장됩니다. cgroup v2를 사용하여 동일한 명령을 시도해 보는 것이 좋습니다. 이렇게 하려면 다음을 추가하세요.systemd.unified_cgroup_hierarchy=1Linux를 입력하고 실행 GRUB_CMDLINE_LINUX_DEFAULT한 후 다시 시작하세요. cgroup v2가 더 나은 CPU 제어 기능을 제공하기를 바랍니다./etc/default/grubupdate-grub

관련 정보