반응형
컨테이너 구성하는 3가지 주요 리눅스 기술
- Control groups
- Namespaces
- Union mount filesystem
cgroups (Control Groups)
- 프로세스들이 사용하는 시스템 자원의 사용 정보를 수집 및 제한 시키는 리눅스 커널 기능
* 모든 프로세스에 대해 리소스 사용 정보를 수집 - 제한 가능한 자원: CPU, Memory, Network, Device, Block I/O
- 활용 사례: runc, YARN (Hadoop), Android 등
- 사용 가능한 서브시스템
blkio, cpu, cpuacct, cpuset, devices, freezer, memory, net_cls, ns
• cpu — 스케줄러를 이용해 해당 cgroup 에 속한 프로세스 CPU 사용 시간을 제어
(예, 해당 그룹의 CPU사용량 10%로 제한)
• memory —해당 cgroup에 속한 프로세스의 메모리 사용량에 대한 제어
(예, 해당 그룹의 메모리 사용량을 128MB로 제한 → 128MB 초과 사용시 oom_control 이 해당 초과된 작업을 종료시킴 )
• freezer —cgroup의 작업을 일시 중지하거나 다시 시작 → docker pause
• blkio — cgroup에 블록 장치에 대한 입력/출력 제한을 설정 (저장공간 제한 개념 아님)
• net_cls — 이 서브시스템은 Linux 트래픽 컨트롤러 (tc)가 특정 cgroup 작업에서 발생하는 패킷을
식별하게 하는 클래식 식별자 (classid)를 사용하여 네트워크 패킷에 태그를 지정
• cpuset —개별 CPU 및 메모리 노드를 cgroup에 할당
• cpuacct —cgroup이 사용한 CPU 자원에 대한 보고서를 생성
• devices —cgroup의 작업 단위로 장치에 대한 액세스를 허용하거나 거부
• ns — namespace 서브시스템
Case #1 Web 서비스
Case #2 Kubernetes Pod
반응형
'리눅스 > Part1. Ch02. 컨테이너를 구성하는 리눅스 기술' 카테고리의 다른 글
08. (실습) cgroup으로 fork bomb 막아보기 (0) | 2022.06.23 |
---|---|
07. (실습) cgroup으로 Anti Virus앱 CPU사용 제한하기 (0) | 2022.06.23 |
05 실습 환경 구성 - VS Code 설정 (0) | 2022.06.23 |
04 리눅스 시스템 구성 - 클라우드 (0) | 2022.06.23 |
02 리눅스 커널 소개 (0) | 2022.06.22 |