Cgroups

cgroups(control groups의 약자)는 프로세스들의 자원의 사용(CPU, 메모리, 디스크 입출력, 네트워크 등)을 제한하고 격리시키는 리눅스 커널 기능이다.

구글의 엔지니어들이 2006년에 이 기능에 대한 작업에 착수하였고 당시 이름은 "프로세스 컨테이너"(process container)였다. 2007년 말에 리눅스 커널 문맥에서 "컨테이너"라는 용어의 의미가 여러 개이므로 혼란을 방지하기 위해 이름이 "컨트롤 그룹"(control groups)으로 변경되었으며, 컨트롤 그룹 기능은 2008년 1월에 출시된 커널 버전 2.6.24에 리눅스 커널 메인라인으로 병합되었다. 그 뒤로 개발자들은 수많은 새로운 기능과 컨트롤러들을 추가해오고 있는데, 이를테면 kernfs 지원, 방화벽, 통합된 계층구조를 포함한다.

채택 
다양한 프로젝트들이 cgroups를 기반으로 사용하고 있으며, 여기에는 코어OS, 도커, 하둡, Jelastic, Kubernetes, lmctfy (Let Me Contain That For You), LXC (리눅스 컨테이너/LinuX Containers), systemd, Mesos, Mesosphere, HTCondor 등이 있으며 메인라인 리눅스 커널에 채택된지 3년이 지난 2010년 11월에 레드햇 엔터프라이즈 리눅스 6과 같은 주요 리눅스 배포판에도 또한 채택되었다.

같이 보기 
 운영 체제 수준 가상화
 프로세스 그룹

각주

외부 링크 
 Linux kernel documentation on cgroups
 Linux kernel Namespaces and cgroups by Rami Rosen
 Namespaces and cgroups, the basis of Linux containers (including cgroups v2), slides of a talk by Rami Rosen, Netdev 1.1, Seville, Spain, 2016
 Understanding the new control groups API, LWN.net, by Rami Rosen, March 2016
 Large-scale cluster management at Google with Borg, April 2015, by Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune and John Wilkes
 Job Objects, similar feature on Windows

리눅스 커널 인터페이스
리눅스 커널 특징
운영 체제 보안