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-v
2)는 모든 리소스 컨트롤러가 마운트된 단일 제어 그룹 계층 구조를 제공합니다.제어 파일 동작 및 명명은 다양한 컨트롤러에서 일관되게 유지됩니다.
참고cgroups-v2
는 RHEL 8.2 이상 버전에서 완전히 지원됩니다. 자세한 내용은 RHEL 8에서 Control Group v2가 완전히 지원됩니다.
추가 리소스
- 커널 리소스 컨트롤러 소개
-
cgroupsECDHE 매뉴얼
페이지 - 제어 그룹에서 systemd의 역할