반응형
1. cgroup 개요
자원 사용(CPU, Memory, I/O 등)을 프로세스 그룹단위로 제어할 수있는 리눅스 커널 기능
성능면에서 자원 경합을 줄이고, 예측성을 높여 SLA를 만족시킴
자원 제어는 CPU/CPUSET, Memory, Network, I/O 등을 포함
2. cgroup 사용
방법1 : cgroup이라는 가상 파일 시스템을 수동으로 마운트해서 사용
방법2 : libcgroup 과 같은 툴을 이용하여, 그룹을 생성하고 관리함. 명령어는 cgcreate, cgexec과 cgclassfy.
방법3: cgroup을 이용하는 Docker, LXC 가상화, libvert 등 다른 소프트웨어 활용
3. RHEL에서 사용 가능한 서브시스템(자원 컨트롤러)
- blkio — 이 서브시스템은 물리 드라이브 (예: 디스크, 솔리드 스테이트, USB 등)와 같은 블록 장치에 대한 입력/출력 액세스에 제한을 설정
- cpu — 이 서브시스템은 CPU에 cgroup 작업 액세스를 제공하기 위해 스케줄러
- cpuacct — 이 하위 시스템은 cgroup의 작업에 사용된 CPU 자원에 대한 보고서를 자동으로 생성
- cpuset — 이 서브시스템은 개별 CPU (멀티코어 시스템에서) 및 메모리 노드를 cgroup의 작업에 할당
- devices — 이 서브시스템은 cgroup의 작업 단위로 장치에 대한 액세스를 허용하거나 거부
- freezer — 이 서브시스템은 cgroup의 작업을 일시 중지하거나 다시 시작
- memory — 이 서브시스템은 cgroup의 작업에서 사용되는 메모리에 대한 제한을 설정하고이러한 작업에서 사용되는 메모리 자원에 대한 보고서를 자동으로 생성
- net_cls — 이 서브시스템은 Linux 트래픽 컨트롤러 (tc)가 특정 cgroup 작업에서 발생하는 패킷을 식별하게 하는 클래식 식별자 (classid)를 사용하여 네트워크 패킷에 태그를 지정
- ns — namespace 서브시스템
4. cgroup 설정 예 (libcgroup 툴 사용)
1) libcgroup 설치
- yum install libcgroup
- apt-get install cgroup-bin libcgroup
2) 기본 구성 파일 - /etc/cgconfig.conf
mount {
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
}
3) cgroups 데몬 기동
- service config start
4) 커맨드라인 툴
- cgexec :특정 그룹에 새로운 프로세스를 기동
- cgclasfy :프로세스를 특정 그룹으로 이동
- cgcreate/cgdelete :특정 그룹을 수동으로 생성하고 삭제
- cgset :정의된 그룹을 수정
- End -
'OS > LINUX' 카테고리의 다른 글
[명령어] 리눅스 모니터링 명령어/툴 요약 (0) | 2016.04.15 |
---|---|
리눅스 성능 체크리스트 - USE 방법론 (0) | 2016.04.05 |
[정보] tcpdump 명령어 사용법 (1) | 2016.04.05 |
[개요] 리눅스 주요 시스템 콜(Linux system call) (0) | 2016.03.04 |
리눅스 모니터링(Linux Monitoring) (0) | 2016.03.04 |