24장. cgroups-v2를 사용하여 애플리케이션의 CPU 시간 배포 제어
일부 애플리케이션은 너무 많은 CPU 시간을 사용하므로 환경의 전반적인 상태에 부정적인 영향을 미칠 수 있습니다. 애플리케이션을 제어 그룹 버전 2 (cgroups-v2)에 배치하고 해당 제어 그룹의 CPU 제한을 구성할 수 있습니다. 따라서 CPU 소비에서 애플리케이션을 규제할 수 있습니다.
사용자에게 제어 그룹에 할당된 CPU 시간 분배를 규제하는 두 가지 방법이 있습니다.
24.1. cgroups-v2 마운트 링크 복사링크가 클립보드에 복사되었습니다!
부팅 프로세스 중에 RHEL 8은 기본적으로 cgroup-v1 가상 파일 시스템을 마운트합니다. cgroup-v2 기능을 사용하여 애플리케이션의 리소스를 제한하려면 시스템을 수동으로 구성합니다. 시스템 리소스 사용을 제어하려면 systemd를 사용합니다. 특별한 경우에만 cgroups 가상 파일 시스템을 수동으로 구성해야 합니다. 예를 들어 cgroup-v2 계층에 동등한 항목이 없는 cgroup-v1 컨트롤러를 사용해야 하는 경우입니다.
사전 요구 사항
- root 권한이 있습니다.
프로세스
시스템 시스템 및 서비스 관리자가 시스템 부팅 중에 기본적으로
cgroups-v2를마운트하도록 시스템을 구성합니다.grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="systemd.unified_cgroup_hierarchy=1"
# grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="systemd.unified_cgroup_hierarchy=1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면 필요한 커널 명령줄 매개변수가 현재 부팅 항목에 추가됩니다.
모든 커널 부팅 항목에
systemd.unified_cgroup_hierarchy=1매개변수를 추가하려면 다음을 수행합니다.grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1"
# grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 변경 사항을 적용하려면 시스템을 재부팅합니다.
검증
cgroups-v2파일 시스템이 마운트되었는지 확인합니다.mount -l | grep cgroup
# mount -l | grep cgroup cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate)Copy to Clipboard Copied! Toggle word wrap Toggle overflow cgroups-v2파일 시스템이/sys/fs/cgroup/디렉터리에 성공적으로 마운트되었습니다./sys/fs/cgroup/디렉터리의 콘텐츠를 검사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 루트 제어 그룹이라고도 하는
/sys/fs/cgroup/ 디렉터리는 인터페이스 파일(cgroup으로 시작) 및cpuset.cpus.effective와 같은 컨트롤러별 파일을 제공합니다. 또한systemd와 관련된 일부 디렉터리(예:/sys/fs/cgroup/init.scope),/sys/fs/cgroup/system.slice,/sys/fs/cgroup/user.slice.