Red Hat Training

A Red Hat training course is available for RHEL 8

23장. 제어 그룹을 사용하여 애플리케이션의 시스템 리소스 제한 설정

제어 그룹(cgroup) 커널 기능을 사용하면 애플리케이션의 리소스 사용량을 제어하여 보다 효율적으로 사용할 수 있습니다.

다음 작업에 cgroup 을 사용할 수 있습니다.

  • 시스템 리소스 할당에 대한 제한 설정.
  • 특정 프로세스에 대한 하드웨어 리소스 할당 우선 순위를 지정합니다.
  • 특정 프로세스에서 하드웨어 리소스를 가져오지 못하도록 격리합니다.

23.1. 제어 그룹 소개

제어 그룹 Linux 커널 기능을 사용하여 프로세스를 계층적으로 정렬된 그룹인 cgroup 으로 구성할 수 있습니다. /sys/fs/cgroup/ 디렉터리에 기본적으로 마운트된 cgroups 가상 파일 시스템에 구조를 제공하여 계층 구조(제어 그룹 트리)를 정의합니다.

systemd 서비스 관리자는 cgroup 을 사용하여 관리하는 모든 장치 및 서비스를 구성합니다. 수동으로 /sys/fs/cgroup/ 디렉터리에 하위 디렉터리를 생성하고 제거하여 cgroup 의 계층 구조를 관리할 수 있습니다.

그런 다음 커널의 리소스 컨트롤러는 해당 프로세스의 시스템 리소스를 제한, 우선 지정 또는 할당하여 cgroup 의 프로세스 동작을 수정합니다. 이러한 리소스에는 다음이 포함됩니다.

  • CPU 시간
  • 메모리
  • 네트워크 대역폭
  • 이러한 리소스의 조합

cgroup 의 주요 사용 사례는 시스템 프로세스를 집계하고 애플리케이션 및 사용자 간에 하드웨어 리소스를 분할하는 것입니다. 이를 통해 환경의 효율성, 안정성 및 보안을 강화할 수 있습니다.

컨트롤 그룹 버전 1

제어 그룹 버전 1 (cgroups-v1)은 리소스별컨트롤러 계층 구조를 제공합니다. 즉, 각 리소스(예: CPU, 메모리 또는 I/O)에는 자체 제어 그룹 계층 구조가 있습니다. 하나의 컨트롤러에서 각각의 리소스를 관리할 때 다른 컨트롤러와 조정할 수 있는 방식으로 서로 다른 제어 그룹 계층 구조를 결합할 수 있습니다. 그러나 두 컨트롤러가 서로 다른 프로세스 계층에 속하는 경우 적절한 조정이 제한됩니다.

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

컨트롤 그룹 버전 2

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

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

참고

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

추가 리소스