Docker Cgroup 박문식

Similar documents
리눅스 커널 소개

초보자를 위한 분산 캐시 활용 전략

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

PCServerMgmt7

The Self-Managing Database : Automatic Health Monitoring and Alerting

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

휠세미나3 ver0.4

Chapter #01 Subject


6주차.key

Chap06(Interprocess Communication).PDF

Remote UI Guide

C# Programming Guide - Types

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

DocsPin_Korean.pages

Mango220 Android How to compile and Transfer image to Target

Sharing Memory Between Drivers and Applications

PowerPoint 프레젠테이션

untitled

chap 5: Trees

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

歯MW-1000AP_Manual_Kor_HJS.PDF

SMB_ICMP_UDP(huichang).PDF

untitled

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

solution map_....

1217 WebTrafMon II

untitled

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Simplify your Job Automatic Storage Management DB TSC

Microsoft PowerPoint - o8.pptx

R50_51_kor_ch1

04( ) CSTV15-23.hwp

Microsoft PowerPoint - 알고리즘_2주차_1차시.pptx

Oracle Database 10g: Self-Managing Database DB TSC

Embeddedsystem(8).PDF

(......).hwp

MS-SQL SERVER 대비 기능

슬라이드 1

PRO1_02E [읽기 전용]

11장 포인터

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Chapter 4. LISTS

hlogin2

목 차

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

PowerPoint 프레젠테이션

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

Microsoft PowerPoint - eSlim SV [ ]

vm-웨어-앞부속

리뉴얼 xtremI 최종 softcopy

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 부처명 교육과학기술부

thesis-shk

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

PRO1_04E [읽기 전용]

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

Lab 3. 실습문제 (Single linked list)_해답.hwp

manual pdfÃÖÁ¾

제20회_해킹방지워크샵_(이재석)

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

BMP 파일 처리

chapter4

Microsoft PowerPoint APUE(Intro).ppt

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

PowerPoint 프레젠테이션

Microsoft PowerPoint - eSlim SV [080116]

62

歯sql_tuning2

DE1-SoC Board

금오공대 컴퓨터공학전공 강의자료

SRC PLUS 제어기 MANUAL

USER GUIDE

B _00_Ko_p1-p51.indd

10.

gisa_pil_070304_pdf.hwp

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

인켈(국문)pdf.pdf

CD-RW_Advanced.PDF

Frama-C/JESSIS 사용법 소개

adfasdfasfdasfasfadf

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

PowerPoint Presentation

Chapter 4. LISTS

Abstract View of System Components

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

歯FDA6000COP.PDF

제8장 자바 GUI 프로그래밍 II

항목

Microsoft PowerPoint - a10.ppt [호환 모드]

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

PowerPoint 프레젠테이션

Jerry Held

PBNM CIM(Common Information Model) DEN, COPS LDAP 21 CIM (Common Information Model) CIM, specification schema [7]

Contents I. 칼라스 네트워크 플레이어란 1. Pc-Fi를 넘어서 발전한 차세대 음악 플레이어 칼라스 네트워크 플레이어의 장점 3. 시스템 기본 구성

슬라이드 1

Transcription:

Docker Cgroup 2015.2 박문식

Cgroup? 시작은 process containers Merge to Kernel 2.6.24

리소스가 부족하던 시절 CPU / Memory / Disk

리소스 풍요의 시대 CPU / Memory / Disk WWW 로그인서비스 파일서비스 미디어서버 DB 서버 포털 중계 캐쉬

효과적인 자원의 분배와 활용 고비용!!!

전통적인 자원 사용 방법 Resources cpu Memory net disk Kernel task task task

Cgroups 에서의 자원 사용 subsystems cpu Memory net disk Cgroups task task task

Cgroups vs Process * 계층적이며 상속의 속성을 갖는다는 공통점 * 프로세스는 단일 상속 구조인데 반해 Cgroups 는 다중 구조를 갖는다. Parrent Child Parrent Child Child Parrent Child Child Child Child

Cgroups vs Process * 계층적이며 상속의 속성을 갖는다는 공통점 * 프로세스는 단일 상속 구조인데 반해 Cgroups 는 다중 구조를 갖는다. CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 Group 1 CPU 1,3,5 Mem 2,3,7 Task 123 Task 124 Task 125 Task 126 Group 2 CPU 0,2,6 Mem 1,4,8 Task 234 Task 235 Task 236 Task 237 CPU6 CPU7 mem1 mem2 mem3 mem4 mem5 mem6 mem7 mem8

Subsystem?? task?? * subsystem은 시스템의 자원들을 지칭한다 예를 들어 memory, disk, cpu, network 등... 자원의 사용을 제한하는 기능을 제공하는 경우 * 디바이스와 다른점 DMA 등과 같은 디바이스는 특정 기능을 수행하는 자원 * Croups 의 task는 tid 로 구분되는 프로세스를 의미한다 * Cgroups는 task 들을 관리하는 기능만 갖고 있다 * 각 Subsystem 에서 제한의 기능들은 수행된다

Cgroups - 특징 직관적 인터페이스

Cgroups - 특징 모든 Cgroups에 공통적으로 존해하는 tasks 파일들... 여기가 tid 집합소

Cgroups 그룹에 포함시키기 그룹으로 묶는 것은 오로지 tasks 라는 파일에 tid를 넣는 것으로 끝이난다. 새로 생성되는 task 는 자동으로 부모의 그룹에 속한다

Cgroups - 그룹 만들기, 삭제하기 root@boggle70/sys/fs/cgroup/cpu# mkdir mycpu sudo 권한 필요 root@boggle70/sys/fs/cgroup/cpu# rmdir mycpu tasks 파일내에 tid 가 모두 비워져야 가능

Cgroups - 그룹 정보 root@boggle70/sys/fs/cgroup/cpu# cat /proc/cgroups 현재 지원되는 subsystem 과 몇개가 생성되었는지 보여준다

Cgroups kernel space

Cgroups kernel space task_struct pointer to cgroup cgroup 의 linked list css_set subsystem object 의 pointer list task_struct 와의 list cgrp_dfl_root struct cgroup_root (default root subsystem) cgroup_subsys cgroup subsystem array Cpuset, cpu, cpuacct, memory, devices Freezer, net_cls, blkio, perf_event net_prio, hugetlb, debug

Cgroups kernel space task_struct init_task css_set cgrp_dfl_root init_css_set cgroup_subsys subsystem subsystem subsystem subsystem subsystem

Cgroups kernel space ATTACH add task to group and migrate task Tasks file 에 pid 를 써 넣으면 어떤 일이 일어날까? cgroup_tasks_write cgroup_procs_write cgroup_procs_write cgroup_attach_task cgroup_attach_task add migrate list Migrate prepare migrate migrate finish

Cgroups kernel space DETACH delete task from cgroup Remove task cg_list Move to init_css_set

Cgroups - subsystem Blkio - 블록장치의 입출력 제한 Cpuacct - 그룹별 cpu 사용에 대한 통계를 보여줍니다 Cpuset 각 cpu 와 메모리 노드를 할당합니다 - Devices - 장치 파일에 대한 access 를 허용하거나 거부합니다 Freezer - 그룹에 대해서 작업을 start or stop 시킬수 있다 Hugetlb - HugeTLB 에 대한 제한을 할수 있다 Memory - 메모리의 사용을 제한한다 nel_cls 네트워크 패킷에 class identifer tag 를 부여하여 traffic controller 에서 사용할수 있도록 해준다 - resource_counter - 콘트럴러에서 리소스를 관리하는 편리한 방법을 제공한다 몇번이나 사용되었지는 성공 실패등에 대한 것들을 관리한다

Cgroups - Common cgroup.clone_children Cpuset controller 에서만 사용된다 활성화 될 경우 cpuset 의 하위 그룹은 상위 그룹의 설정을 그대로 복제된다 cgroup.event_control User 영역에서 사용되는 이벤트 통지를 기록할 fd 를 설정합니다 cgroup.procs 그룹에 속해 있는 Thread group ID cgroup.sane_behavior Subsystem 에서 cgroup 에서 설정된 hierarchy 를 적용하도록 허용 notify_on_release 해당 그룹이 삭제될때 nitify 를 할것인지 여부 release_agent Notify 에 사용되는 파일의 경로 Tasks 그룹에 속해 있는 task list

Cgroups blkio Weight time CFQ 스케쥴러를 이용한 두개의 제한 정책을 지원 * Weight time 점유 시간 제한 정책 * Throttling policy 밴드위스 제한 정책 blkio.weight 점유율 blkio.leaf_weight 유휴 점유율 Weight 설정 root 의 분배 그룹 구성 그룹 A 에 분배된 양에 대한 하위 그룹과의 분

Cgroups blkio * Throttling policy - Throttling policy bandwidth 제한 정책 blkio.throttle.read_bps_device 디바이스로부터 초당 byte 읽기 제한 echo majorminor limit > blkio.throttle.read_bps_device blkio.throttle.write_bps_device 디바이스에 초당 byte 쓰기 제한 echo majorminor limit > blkio.throttle.write_bps_device blkio.throttle.read_iops_device 디바이스에 초당 io 읽기 횟수 제한 echo majorminor limit > blkio.throttle.read_iops_device blkio.throttle.write_iops_device 디바이스에 초당 io 쓰기 횟수 제한 echo majorminor limit > blkio.throttle.write_iops_device

Cgroups - blkio blkio.throttle.io_serviced blkio.throttle.io_service_bytes blkio.io_merged blkio.io_queued blkio.io_service_bytes blkio.io_service_time blkio.io_serviced blkio.io_wait_time blkio.sectors blkio.throttle.io_serviced blkio.throttle.io_service_bytes 그룹 bio 를 수행한 횟수 그룹 전송 byte 그룹에서 요청되어 bio queue 에 merge 된 수 그룹에서 queue 요청된 횟수 그룹에서 디스크에 전송이 요청된 바이트수 그룹에서 io 전송과 종료에 소요된 시간 그룹에서 디스크에 전송이 완료된 IO 횟수 그룹에서 디스크 전송에서 기다린 시간 그룹에서 전송되어진 섹터수 throttling policy 에 의해 전송된 io 횟수 throttling policy 에 의해 전송된 byte 수

Cgroups accounting Contreller CPU 사용량에 대한 통계를 보여준다 cpuacct.stat User mode 와 system mode 에서 사용된 통계를 보여준다 (USER_HZ) cpuacct.usage 그룹에서 사용된 총 cpu 사용시간 (ns) cpuacct.usage_percpu 그룹에서 사용된 각 cpu 별 사용시간 (ns)

Cgroups - cpusets Tasks 에 cpu 와 momory nodes 를 할당

Cgroups - cpusets Tasks 에 cpu 와 momory nodes 를 할당 cpuset.cpus cpuset.mems cpuset.memory_migrate cpuset.cpu_exclusive cpuset.mem_exclusive cpuset.mem_hardwall cpuset.memory_pressure cpuset.memory_spread_page 할당된 cpu list 할당된 memory node list page 가 할당된 nodes 로 이동한다 cpu 가 다른 그룹에 할당 되는 것을 허용 메모리가 다른 그룹에 공유 되는 것을 허용 커널에서 페이지와 버퍼데이타에 대한 제한을 허용할 것인지 여부 평균 메모리 사용 통계에 page cache 에서 다른 노드에 사용되는 것을 허용

Cgroups - memory 메모리 사용에 대한 제한 기능 memory.memsw.usage_in_bytes memory.limit_in_bytes memory.memsw.limit_in_bytes memory.failcnt memory.memsw.failcnt memory.max_usage_in_bytes memory.memsw.max_usage_in_bytes memory.soft_limit_in_bytes memory.stat memory.use_hierarchy memory.force_empty memory.pressure_level memory.swappiness memory.move_charge_at_immigrate memory.oom_control memory.numa_stat memory+swap 사용량 memory limit 설정 memory+swap 설정 memory limit 데 걸린 횟수 memory+swap limit 에 걸린 횟수 최대 memory 사용량 최대 memory+swap 사용량 soft_limit 제한. 최대 hard_limit 허용 시간 동안 soft_limit 은 초과 허용 여러가지 통계를 보여준다 상위 그룹에 대한 제한을 따른다 메모리 사용량을 비운다 eventfd 와 함께 notification 에 사용된다 /proc/sys/vm/swappiness tasks migration 시 page 처리 옵션 enable oom numa node 에 대한 메모리 사용정보

Cgroups - memory 메모리 사용에 대한 제한 기능 memory.kmem.limit_in_bytes memory.kmem.usage_in_bytes memory.kmem.failcnt memory.kmem.max_usage_in_bytes 커널 메모리 사용 제한 커널 메모리 사용량 커널 메모리 제한에 걸린 횟수 커널 메모리 최대 사용량 memory.kmem.tcp.limit_in_bytes memory.kmem.tcp.usage_in_bytes memory.kmem.tcp.failcnt memory.kmem.tcp.max_usage_in_bytes tcp tcp tcp tcp buffer buffer buffer buffer 커널 메모리의 경우 여러가지 이유로 메모리 사용 제한에 대한 예외가 존재 kernel memory no swap out root cgroup 에는 적용하지 않는다 현재는 tcp memory 에 대해서만 적용 메모리 사용제한 메메리 사용량 메모리 제한에 걸린 횟수 최대 사용량

Cgroups - net_cls Network classifier 패킷에 tag 를 붙여서 사용한다 Tag 는 classid 를 사용하며 패킷 처리에서 traffic controller 에서 서로 다른 우순 순위 정책에 따라 패킷을 처리할 수 있도록 제공한다

Cgroups - resource_counter 컨트롤러에 의한 리소스 관리를 용이하게 하기 위한 기능 커널 레벨 지원 Kernel/res_counter.c Usage Max_usage Limit Failcnt Lock read only 통계 최대 사용 count 최대 사용 가능 count limit 에 도달한 횟수 spinlock

Cgroups - hugetlb 큰 메모리 사용에 대한 제한 hugetlb.<hugepagesize>.limit_in_bytes hugetlb.<hugepagesize>.max_usage_in_bytes hugetlb.<hugepagesize>.usage_in_bytes hugetlb.<hugepagesize>.failcnt Hugepagesize 정보는 /proc/meminfo 에 있다 (부트 설정) 최대 사용 제한 최대 사용 기록 현재 사용 횟수 실패 횟수

Cgroups - freezer Job management 시에 사용되는 기능 그룹에 속하는 tasks 를 스톱시켜 checkpoint 를 사용할수 있게 한다 결과적으로 특정 상황에서의 consistent image 를 생성 시킬수 있게 된다. 이렇게 얻게된 image 는 이후에 에러 복구등에 사용할수 있게 된다. Freezer 에서는 SIGSTOP, SIGCONT 시그널을 사용한다.

Cgroups - freezer Freezer.stat read-write. 세가지 상태를 갖게 된다. THAWED, FREEZING, FROZEN freezer.self_freezing read-only. 자신의 상태를 보여준다. freezer.parent_freezing read-only. parent 의 freezeing 상태를 보여준다 Root cgroup 은 no-freezable Freezing Unfreezing

감사합니다