10장. 커널
10.1. 리소스 제어
10.1.1. Control group v2는 RHEL 8에서 기술 프리뷰로 사용 가능
제어 그룹 v2 메커니즘은 통합된 계층 제어 그룹입니다. 제어 그룹 v2 는 프로세스를 계층적으로 구성하고 제어 및 구성 가능한 방식으로 계층에 따라 시스템 리소스를 배포합니다.
이전 버전과 달리 제어 그룹 v2 에는 단일 계층만 있습니다. 이 단일 계층을 통해 Linux 커널에서는 다음을 수행할 수 있습니다.
- 소유자의 역할에 따라 프로세스 분류
- 여러 계층에서 충돌하는 정책 문제 해결
Control 그룹 v2 는 다양한 컨트롤러를 지원합니다.
CPU 컨트롤러가 CPU 사이클의 배분을 조정합니다. 이 컨트롤러는 다음을 구현합니다.
- 일반적인 스케줄링 정책에 대한 가중치 및 절대 대역폭 제한 모델
- 실시간 스케줄링 정책에 대한 절대 대역폭 할당 모델
메모리 컨트롤러가 메모리 할당을 조정합니다. 현재 다음과 같은 유형의 메모리 사용을 추적할 수 있습니다.
- Userland 메모리 - 페이지 캐시 및 익명 메모리
- dentries 및 inode와 같은 커널 데이터 구조
- TCP 소켓 버퍼
- I/O 컨트롤러가 I/O 리소스 배분을 제한합니다.
- RDMA(Remote Direct Memory Access) 컨트롤러는 특정 프로세스가 사용할 수 있는 RDMA/IB 특정 리소스를 제한합니다. 이러한 프로세스는 RDMA 컨트롤러를 통해 그룹화됩니다.
-
프로세스 번호 컨트롤러를 사용하면 제어 그룹에서 특정 제한 후 새 작업이
fork()
'd 또는clone()
'd가 아닌 새 작업을 중지할 수 있습니다. - writeback 컨트롤러는 I/O와 메모리 컨트롤러 간의 충돌의 균형을 유지하는 메커니즘 역할을 합니다.
위의 정보는 cgroups-v2 온라인 설명서 를 기반으로 합니다. 동일한 링크를 참조하여 특정 제어 그룹 v2 컨트롤러에 대한 자세한 정보를 얻을 수 있습니다.