Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

20장. 애플리케이션에 대한 제한 설정

cgroup( 제어 그룹 ) 커널 기능을 사용하여 제한을 설정하고 프로세스의 하드웨어 리소스에 우선 순위를 지정하거나 격리할 수 있습니다. 이를 통해 애플리케이션의 리소스 사용을 보다 효율적으로 활용하도록 세부적으로 제어할 수 있습니다.

20.1. 제어 그룹 이해

제어 그룹은 계층적으로 정렬된 그룹인 cgroup 으로 프로세스를 구성할 수 있는 Linux 커널 기능입니다. 계층 구조(제어 그룹 트리)는 기본적으로 /sys/fs/cgroup/ 디렉터리에 마운팅된 cgroup 가상 파일 시스템에 구조를 제공하여 정의됩니다. systemd 시스템 및 서비스 관리자는 cgroup 을 활용하여 관리하는 모든 장치 및 서비스를 구성합니다. 또는 /sys/fs/ cgroup / 디렉토리에서 하위 디렉터리를 생성 및 제거하여 cgroup 계층 구조를 수동으로 관리할 수 있습니다.

그런 다음 리소스 컨트롤러(커널 구성 요소)는 해당 프로세스의 CPU 시간, 메모리, 네트워크 대역폭 또는 다양한 조합과 같은 시스템 리소스(예: CPU 시간, 메모리, 네트워크 대역폭 또는 다양한 조합)를 제한, 우선 순위 지정 또는 할당하여 cgroup 의 프로세스 동작을 수정합니다.

cgroup 의 부가 가치는 애플리케이션 및 사용자 간에 하드웨어 리소스를 구분할 수 있는 프로세스 집계입니다. 따라서 사용자 환경의 효율성, 안정성 및 보안을 전반적으로 높일 수 있습니다.

컨트롤 그룹 버전 1

제어 그룹 버전 1 (cgroups-v1)은 리소스별컨트롤러 계층 구조를 제공합니다. 즉, CPU, 메모리, I/O 등의 각 리소스에 고유한 제어 그룹 계층 구조가 있습니다. 하나의 컨트롤러가 각각의 리소스를 관리하는 다른 컨트롤러와 조정하는 방식으로 다양한 제어 그룹 계층 구조를 결합할 수 있습니다. 그러나 두 컨트롤러는 적절한 조정을 허용하지 않는 다른 프로세스 계층 구조에 속할 수 있습니다.

cgroups-v1 컨트롤러는 많은 기간 동안 개발되었기 때문에 제어 파일의 동작과 이름이 동일하지 않습니다.

컨트롤 그룹 버전 2

계층적 유연성에서 비롯된 컨트롤러 조정 문제로 인해 제어 그룹 버전 2 가 개발되었습니다.

컨트롤 그룹 버전 2 (cgroups-v2)는 모든 리소스 컨트롤러가 마운트되는 단일 제어 그룹 계층 구조를 제공합니다.

제어 파일 동작 및 명명은 다양한 컨트롤러에서 일관되게 유지됩니다.

참고

cgroups-v2 는 RHEL 8.2 이상 버전에서 완전히 지원됩니다. 자세한 내용은 RHEL 8에서 Control Group v2가 완전히 지원됩니다.

이 하위 섹션은 Devconf.cz 2019 프레젠테이션을 기반으로 합니다.[1]

추가 리소스



[1] Linux Control Group v2 - Waiman Long의 Devconf.cz 2019 프레젠테이션 소개