34.2. 커널 리소스 컨트롤러 소개
커널 리소스 컨트롤러를 사용하면 제어 그룹의 기능을 사용할 수 있습니다. RHEL 9는 제어 그룹 버전 1(cgroups-v1
) 및 제어 그룹 버전 2(cgroups-v2
)에 대한 다양한 컨트롤러를 지원합니다.
제어 그룹 하위 시스템이라고도 하는 리소스 컨트롤러는 CPU 시간, 메모리, 네트워크 대역폭 또는 디스크 I/O와 같은 단일 리소스를 나타내는 커널 하위 시스템입니다. Linux 커널은 systemd
서비스 관리자가 자동으로 마운트하는 다양한 리소스 컨트롤러를 제공합니다. 현재 마운트된 리소스 컨트롤러 목록은 /proc/cgroups
파일에서 찾을 수 있습니다.
cgroups-v1
에서 사용 가능한 컨트롤러:
blkio
- 블록 장치에 대한 입력/출력 액세스 제한을 설정합니다.
cpu
-
제어 그룹의 작업에 대한 CFS(Completely Fair Scheduler)의 매개변수를 조정합니다.
cpu
컨트롤러는 동일한 마운트에cpuacct
컨트롤러와 함께 마운트됩니다. cpuacct
-
제어 그룹의 작업에서 사용하는 CPU 리소스에 대한 자동 보고서를 생성합니다.
cpuacct
컨트롤러는 동일한 마운트에cpu
컨트롤러와 함께 마운트됩니다. cpuset
- CPU의 지정된 하위 집합에서만 실행되도록 제어 그룹 작업을 제한하고 지정된 메모리 노드에서만 메모리를 사용하도록 작업에 지시합니다.
devices
- 제어 그룹의 작업에 대한 장치에 대한 액세스를 제어합니다.
freezer
- 제어 그룹에서 작업을 일시 중지하거나 재개합니다.
memory
- 제어 그룹의 작업에서 메모리 사용량에 대한 제한을 설정하고 해당 작업에서 사용하는 메모리 리소스에 대한 자동 보고서를 생성합니다.
net_cls
-
Linux 트래픽 컨트롤러(
tc
명령)를 활성화하여 특정 제어 그룹 작업에서 시작된 패킷을 식별하는 클래스 식별자(classid
)가 있는 네트워크 패킷을 태그합니다.net_cls
의 하위 시스템인net_filter
(iptables)도 이 태그를 사용하여 이러한 패킷에 대한 작업을 수행할 수 있습니다.net_filter
는 Linux 방화벽에서 특정 제어 그룹 작업에서 시작된 패킷을 식별할 수 있는 방화벽 식별자(fwid
)로 네트워크 소켓을 태그합니다(iptables
명령을 사용하여). net_prio
- 네트워크 트래픽의 우선 순위를 설정합니다.
pids
- 제어 그룹에서 여러 프로세스 및 해당 하위 항목에 대한 제한을 설정합니다.
perf_event
-
perf
성능 모니터링 및 보고 유틸리티를 통한 모니터링을 위한 작업을 그룹화합니다. rdma
- 제어 그룹의 Remote Direct Memory Access/InfiniBand 특정 리소스에 대한 제한을 설정합니다.
hugetlb
- 제어 그룹의 작업으로 큰 크기의 가상 메모리 페이지 사용을 제한하는 데 사용할 수 있습니다.
cgroups-v2
에서 사용 가능한 컨트롤러:
io
- 블록 장치에 대한 입력/출력 액세스 제한을 설정합니다.
memory
- 제어 그룹의 작업에서 메모리 사용량에 대한 제한을 설정하고 해당 작업에서 사용하는 메모리 리소스에 대한 자동 보고서를 생성합니다.
pids
- 제어 그룹에서 여러 프로세스 및 해당 하위 항목에 대한 제한을 설정합니다.
rdma
- 제어 그룹의 Remote Direct Memory Access/InfiniBand 특정 리소스에 대한 제한을 설정합니다.
cpu
- 제어 그룹의 작업에 대한 CFS(Completely Fair Scheduler) 매개변수를 조정하고 제어 그룹의 작업에서 사용하는 CPU 리소스에 대한 자동 보고서를 생성합니다.
cpuset
-
CPU의 지정된 하위 집합에서만 실행되도록 제어 그룹 작업을 제한하고 지정된 메모리 노드에서만 메모리를 사용하도록 작업에 지시합니다. 새 파티션 기능이 있는 코어 기능(
cpus{,.effective}
,mems{,.effective}
)만 지원합니다. perf_event
-
perf
성능 모니터링 및 보고 유틸리티를 통한 모니터링을 위한 작업을 그룹화합니다.perf_event
는 v2 계층 구조에서 자동으로 활성화됩니다.
중요
리소스 컨트롤러는 cgroup-v1
계층 구조 또는 두 계층에서 동시에 사용할 수 없는 cgroups-v2
계층에서 사용할 수 있습니다.
추가 리소스
-
cgroups(7)
매뉴얼 페이지 -
/usr/share/doc/kernel-doc-<kernel_version>/Documentation/cgroups-v1/
디렉토리(kernel-doc
패키지를 설치한 후).