Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

20.2. 커널 리소스 컨트롤러란 무엇입니까?

제어 그룹의 기능은 커널 리소스 컨트롤러에서 활성화합니다. RHEL 8에서는 제어 그룹 버전 1 (cgroups-v1) 및 제어 그룹 버전 2 (cgroups-v2)에 대한 다양한 컨트롤러를 지원합니다.

리소스 컨트롤러(제어 그룹 하위 시스템이라고도 함)는 CPU 시간, 메모리, 네트워크 대역폭 또는 디스크 I/O와 같은 단일 리소스를 나타내는 커널 하위 시스템입니다. Linux 커널은 systemd 시스템 및 서비스 관리자가 자동으로 마운트하는 리소스 컨트롤러를 제공합니다. /proc/cgroups 파일에서 현재 마운트된 리소스 컨트롤러 목록을 찾습니다.

다음 컨트롤러는 cgroups-v1 에 사용할 수 있습니다.

  • blkio - 블록 장치로 들어오고 나가는 입력/출력 액세스에 대한 제한을 설정할 수 있습니다.
  • CPU - 제어 그룹의 작업에 대해 CFS(Completely Fair Scheduler) 스케줄러의 매개변수를 조정할 수 있습니다. 동일한 마운트에서 cpuacct 컨트롤러와 함께 마운트됩니다.
  • cpuacct - 제어 그룹의 작업에서 사용하는 CPU 리소스에 대한 자동 보고서를 생성합니다. 동일한 마운트의 cpu 컨트롤러와 함께 마운트됩니다.
  • cpuset - CPU의 지정된 하위 집합에서만 실행되도록 제어 그룹 작업을 제한하고 지정된 메모리 노드에서만 메모리를 사용하도록 작업을 지시하는 데 사용할 수 있습니다.
  • 장치 - 제어 그룹의 작업에 대한 장치에 대한 액세스를 제어할 수 있습니다.
  • 카나리아 - 제어 그룹에서 작업을 일시 중단하거나 재개하는 데 사용할 수 있습니다.
  • memory - 제어 그룹의 작업에서 메모리 사용 제한을 설정하고 해당 작업에서 사용하는 메모리 리소스에 대한 자동 보고서를 생성하는 데 사용할 수 있습니다.
  • net_cls - Linux 트래픽 컨트롤러(thetc 명령 )를 통해 특정 제어 그룹 작업에서 시작된 패킷을 식별할 수 있는 클래스 식별자(classid)로 네트워크 패킷을 태그합니다. net_cls 의 하위 시스템인 net_filter (iptables)는 이 태그를 사용하여 이러한 패킷에 대한 작업을 수행할 수도 있습니다. net_filter 는 Linux 방화벽( iptables 명령을 통해)이 특정 제어 그룹 작업에서 시작되는 패킷을 식별할 수 있는 방화벽 식별자(fwid)로 네트워크 소켓에 태그를 지정합니다.
  • net_prio - 네트워크 트래픽의 우선 순위를 설정합니다.
  • PID - 제어 그룹의 여러 프로세스 및 하위 항목에 대한 제한을 설정할 수 있습니다.
  • perf_event - perf 성능 모니터링 및 보고 유틸리티를 통해 모니터링을 위한 작업을 그룹화할 수 있습니다.
  • RDMA - 제어 그룹의 Remote Direct Memory Access/InfiniBand 특정 리소스에 제한을 설정할 수 있습니다.
  • hugetlb - 제어 그룹의 작업에 따라 대규모 가상 메모리 페이지 사용을 제한하는 데 사용할 수 있습니다.

다음 컨트롤러는 cgroups-v2 에 사용할 수 있습니다.

  • io - cgroups-v1blkio 에 후속 조치.
  • 메모리 - cgroups-v1메모리 후속 작업.
  • PID - cgroups-v1 에서 pid 와 동일합니다.
  • RDMA - cgroups-v1 것과 같습니다.
  • cpu - cgroups-v1cpucpuacct 에 대한 후속 조치.
  • cpuset - 새 파티션 기능으로 핵심 기능(cpus{,.effective}, mems{,.effective})만 지원합니다.
  • perf_event - 지원은 고유하며 명시적인 제어 파일이 아닙니다. 해당 cgroup 내의 모든 작업을 프로파일링하는 perf 명령에 v2 cgroup 을 매개 변수로 지정할 수 있습니다.
중요

리소스 컨트롤러는 동시에 cgroups-v1 계층 구조 또는 cgroups-v2 계층 구조에서 사용할 수 있습니다.

추가 리소스

  • cgroups(7) 도움말 페이지
  • /usr/share/doc/kernel-doc-<kernel_version>/Documentation/cgroups-v1/ 디렉터리에 있는 문서( kernel-doc 패키지 설치 후).