cgroup과 네임 스페이스의 차이점
나는 최근에 docker를 배우기 시작했으며 대부분의 무거운 작업은 네임 스페이스와 cgroup을 사용하여 Linux 커널에서 수행하는 것 같습니다.
내가 헷갈리는 몇 가지 사항은 다음과 같습니다.
네임 스페이스와 cgroup의 차이점은 무엇입니까? 그들이 다루는 다른 사용 사례는 무엇입니까?
인기를 얻기 위해 이것 위에도 커가 구현 된 것은 무엇입니까?
이러한 기능의 내부 및 구현 방법을 알고 싶습니다.
이 두 개념에 대한 적절한 링크는 PR 14307 에서 수정되었습니다 .
내부적으로 Docker는 다음 구성 요소를 기반으로합니다.
Linux 커널 의 cgroup 및
namespaces
기능
와:
- cgroup : 제어 그룹은 작업 세트와 향후 모든 자식을 특수 동작을 가진 계층 적 그룹으로 집계 / 분할하는 메커니즘을 제공합니다.
- namespace : 전역 시스템 리소스를 추상화로 래핑하여 네임 스페이스 내의 프로세스에 전역 리소스의 격리 된 인스턴스를 가지고 있음을 나타냅니다.
요컨대 :
- Cgroups = 사용할 수있는 양을 제한합니다.
- 네임 스페이스 = 볼 수있는 항목 제한 (따라서 사용)
Jérôme Petazzoni의 " Anatomy of a Container : Namespaces, cgroups & Some Filesystem Magic " 에서 자세한 내용을 참조하십시오 .
Cgroup에는 리소스 측정 및 제한이 포함됩니다.
- 기억
- CPU
- 블록 I / O
- 회로망
네임 스페이스는 프로세스에 자체 시스템보기를 제공합니다.
여러 네임 스페이스 :
- pid
- 그물
- mnt
- UTS
- ipc
- 사용자 : userns 가되어 고정 표시기 1.10에서 실험 졸업
(당 데몬 인스턴스 권한이없는 사용자에 컨테이너 루트의 매핑 진행 중입니다 : PR 12648 : 그 참조 디자인 )
cgroups 는 프로세스 또는 프로세스 집합이 CPU, 메모리, 네트워크 I / O 또는 파일 시스템에 대한 액세스 등 이러한 리소스를 사용할 수있는 리소스를 제한하는 반면 네임 스페이스는 프로세스 그룹의 가시성을 나머지 시스템으로 제한합니다.
자세한 내용은 Linux 커널 Cgroup 및 네임 스페이스가 현대 컨테이너를 가능하게 한 방법을 참조하십시오.
참고 URL : https://stackoverflow.com/questions/34820558/difference-between-cgroups-and-namespaces
'Development Tip' 카테고리의 다른 글
HotSpot JVM에서 삭제되는 압축 문자열 지원? (0) | 2020.12.12 |
---|---|
탐지기, 추출기 및 매처 분류 (0) | 2020.12.12 |
Python void 반환 유형 주석 (0) | 2020.12.12 |
배치 파일-오류 처리 (0) | 2020.12.12 |
ini_set ( 'max_execution_time', 0) 나쁜 생각입니까? (0) | 2020.12.12 |