개발/Linux
cgroups
"cgroups" Control groups의 약자로 프로세스들이 사용할 수 있는 컴퓨팅 자원들을 제한하고 격리시킬 수 있는 리눅스 커널의 막강한 기능이다. 지난번 포스팅에서 작성한 namespace와 함께 컨테이너 기술의 기반이 되는 중요한 기능이다. cgroups를 이용하게 되면 다음의 자원들을 제한 할 수 있다. Memory CPU Network Device I/O cgroups를 관리하는 방법에는 여러가지가 있다. cgroup 파일 시스템에 직접 접근 cgmanager 이용 cgroup-tools 이용 이번 포스팅에서는 cgroup-tools을 이용해서 간단한 실습을 해보겠다. 먼저 cgroup-tools를 패키지 관리자를 이용하여 설치를 하면, cgcreate와 cgdelete등의 명령어나 cg..
Linux namespace
"Namespace" 이미 널리 쓰이고 있는 컨테이너의 기반이 되는 기술이기 때문에 리눅스의 namespace가 무엇인지 알아보도록 하자. Namespace는 프로그래밍 언어에서도 많이 등장하는데, 간단하게 isolation이라고 생각하면 된다. 리눅스의 namespace는 커널에서 제공하고 있으며 하나의 시스템에서 프로세스를 격리(Isolation)시킬 수 있는 가상화 기술이다. 예를 들어, PID를 namespace를 통해 격리시킨다면 하나의 시스템에서 동일한 PID가 2개인 것처럼 프로세스를 만들 수 있다. (사실은 2개가 아니지만 그렇게 보인다) 제일 먼저 찾아본 것은 우분투 메뉴얼이다. http://manpages.ubuntu.com/manpages/xenial/man1/unshare.1.htm..