Operating System 14주차 - Linux OOM Killer -

Slides:



Advertisements
Similar presentations
Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
Advertisements

경영학과 이은지 경영학과 윤혜리 경영학과 이지은 경영학과 유승연 경영 성공사례 분석.
일본주식시장의 신 고레가와긴조 투자전략 6 조 안승권. 신문수 발표자 : 신 문 수. 출 생 : 1897 효고현에서 출생 학 력 : 초등학교졸업, 사업가 1992 년 95 세 사망 유일한 자서전 1981 년 스미토모 금속광산 주식매매 200 억엔 벌다⇒ 일본 소득세 납세.
21. XEN KAIST 10 / SPARCS 11 alphamin ( 유민정 ). Contents 1. Virtualization 2. Installing Xen 3. Reference.
2009개정 중등 국어과 교육과정 울산광역시교육청 교육과정 컨설팅단 : 정일진.
Managing Filesystems, Swap Space, and Devices
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
MB노믹스의 실패와 미래 22조 배주환 외 5명.
달라지는 노동법 개정 내용 노무법인 正道 잠시나마… 주요 노동관계법 개정내용 3. 마무리 Contents
1. 던전 디자인 개요_1 1. ‘던전’ 룬스톤은 던전 한 층에도 여러 개가 존재하며, 각 룬스톤 마다 영향을 미치는 범위가 설정되어 있다. 룬스톤이 영향을 주는 범위에 일정시간 사용자가 위치해 있게 되면 사용자 캐릭터는 ‘유령화’ 되어 버리기 때문에, 사용자는.
좋은 강의 국제관계학과 정연식.
2012년 12월 정기 제직회 기 도 : 김영민 집사 출 석 : 서 기 개회 선언 : 제직회장 (이태환 장로)
Vision System Lab, Sang-Hun Han
Project #2-2. Pintos User Program
MIND STORM 창의적 공학 설계 FORKLIFT All in One!! 윤 호, 전유기, 이헌중, 주준성.
EZ Board-M In-Ho, Roh Real Time System Lab.
1636 쇼핑몰.
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
2014학년도 중학교 교육과정 편성시 유의사항 울산광역시교육청 교육과정운영과 한 상 철.
제 2장 컴퓨터 구조.
HACCP 제도 추진 방향 및 전망 식품안전기준팀 식품의약품안전청.
리눅스를 이용한 임베디드 시스템의 기술 동향 정보통신과 2학년 B반 이승훈.
McGraw-Hill Technology Education
Minicom,tftp,nfs설정,vnc설정
임베디드 운영체제 (리눅스 중심) Lecture #2.
Linux를 이용한 Embedded 장비 개발
기상연구소 응용 프로그램 (MM5/MPP) 시스템 별 성능 측정 결과 보고
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
Unix Project-Final <test character device 생성>
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Operating System 5주차 - System Call Analysis -
7. 자극과 반응 7-2. 신경계 3. 여러 가지 반응.
Next Radio System Lab 소개
Xen and the Art of Virtualization
제 1장 시스템 소프트웨어의 개요.
6 단일 프로세서 스케줄링.
Computer System Architecture
여는 장 큰제목과 조원이름은 늘 가로중앙선에 중심을 맞춰주세요.
한 양 대 학 교 의 과 대 학 HANYANG UNIVERSITY COLLEGE OF MEDICINE
제5장 CPU스케줄링(CPU Scheduling)
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
2015. 인문소양교육.
개발시점의 게임시장분석.
운영체제 (Operating Systems) (Memory Management Strategies)
유고결석자 출석인정 안내 Contents 유고결석자 출석인정 사유 신청 시 유의사항 유고결석자 출석인정 절차 흐름도
7장 메모리 관리 메모리 관리를 위한 메모리 할당 기법과 경영에 대해 알아본다. 단편화 현상의 원인과 해결 방법을 알아본다.
Operating System 10주차 - IPC(InterProcess Communication) -
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
알쏭달쏭 요한복음 성경퀴즈.
U N I X 창원대학교 전자계산학과 김병찬.
Operating System Multiple Access Chatting Program using Multithread
선택형 및 실험평가 문항 제작 2007 중등 심화 연수 By K.Y Lee
23. Unix 시스템 커널. 개요 커널의 기본 서비스 커널의 특징 참고서적 프로세스 관리 장치 관리 파일 관리 가상 메모리
게임 엔진 : 프로젝트 PPT_2 참참참 김 현 원.
세종 패션타운 임대,분양,업종자유 브랜드입점 제안서 문 의 : 경 상재.
03. 메모리 관리 C++ 프로그램에서 다룰 수 있는 메모리의 종류
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
ALL KILL 레이어 변경 요청 [PC] 레이어 삭제.
CONTENTS Ⅰ. 대회목적 Ⅱ. 대회개요 Ⅲ. 대회요강 Ⅳ. 대회규정 Ⅴ. 운영계획 Ⅵ. 홍보계획 Ⅶ. 예산계획.
직장생활 예절 ① - 인사 1.내가 먼저 [인사의 5point] 2.상대방의 눈을 보고 미소지으며 3.상대방에 맞춰서
(제작자: 임현수)모둠:임현수,유시연,유한민
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
성전기공식(안) 식 순 1. 기공미사 2. 기 공 식 3. 축 하 연 천주교 수원교구 퇴촌성당.
1.예수 거룩한 주 예수 생명의 11.예수 권능의 주 예수 19.그 누구도 그 누구도 21.It's all about you.
성경퀴즈 여호수아1장 3장 복습게임.
하나샵에서 ALL KILL 기획서 하나샵 E-커머스팀 양희연.
시민이 체감하는 편리한 건축인허가 절차 개선 추진.
맞춤형 사법서비스 구축 4단계 주요 변경업무 전자공탁
2009개정 중등 국어과 교육과정.
가상 기억장치 (Virtual Memory)
Presentation transcript:

Operating System 14주차 - Linux OOM Killer - Real-Time Computing and Communications Lab. Hanyang University yjuly0708@hanyang.ac.kr rooterby@gmail.com

Contents About OOM OOM Deme program Optimistic Memory Allocation Kernel tuning 1 Kernel tuning 2 과제 #7 공지사항

About OOM (Out of memory) 보통 다음의 3가지 상황에 의해 발생합니다. 1. 새로운 프로세스 실행 (fork, exec) 2. 동적 메모리할당 (malloc) 3. 할당만 되어있는 영역에 R/W을 할 때 현재 리눅스 커널은 OOM이 발생하면 oom_kill.c 에 구현되어 있는 OOM_Killer가 알고리즘에 따라 포인트를 계산하고 가장 높은 포인트를 가진 프로세스를 죽입니다.

OOM Demo program OOM 실습을 하기에 앞서 실습환경을 통일하기 위해 VirtualBox 설정으로 들어가서 할당되어 있는 메모리를 1024MB로 바꾸도록 합니다.

OOM Demo program Swap 영역 해제 Swap 영역 확인 : $ swapon –s Swap 영역 해제 : $ sudo swapoff -a

OOM Demo program 1 Allocate Memory without using it 메모리를 할당만 받고, 실제 Read/Write 하지 않았을 때 입니다. OOM이 발생하지 않고, Malloc이 실패하면서 끝나게 됩니다. 682016 MB

OOM Demo program 2 Allocate memory and actually touch it all OOM_Killer에 의해 프로세스가 종료됩니다. 256 MB

OOM Demo program 3 First allocate memory, and use later Malloc 실패 후(메모리 부족), 할당되어있는 영역에 Read/Write를 시도하자 OOM이 발생하여 OOM_Killer에 의해 프로세스가 종료됩니다. 600640 MB

Optimistic Memory Allocation 리눅스는 각각의 프로세스마다 가상메모리라는 것을 가지고 있으며, Overcommit이라는 개념을 사용하여 다소 낙관적인 메모리 할당 정책을 사용하고 있습니다. (Swap 고려) ‘프로세스는 자신이 요청한 메모리 양을 동시에 모두 사용하지 않는다.’ Overcommit 이란 할당된 가상메모리 주소 중 실제 물리메모리의 크기를 넘어서는 부분을 의미합니다. 또한 리눅스는 실제로 가상메모리가 물리메모리에 맵핑되는 시점을 프로세스가 메모리에 읽기/쓰기 할 때로 미룹니다. Overcommit !!

Kernel tunning 1 oom_score_adj (oom score adjustment) 프로세스의 OOM badness score 계산에 이용되는 값 /proc/<pid>/oom_score_adj에 저장되고 -1000 ~ 1000 범위의 값을 가짐 oom_score_adj == -1000인 경우, 해당 프로세스는 OOM killer에 의해 kill 당하지 않음 (OOM DISABLE)

Kernel tunning 1 allocTest.c

Kernel tunning 1 allocTest program Test oom_score_adj를 기본 0으로 세팅한 경우 (default)

Kernel tunning 1 allocTest program Test oom_score_adj를 minimum 값인 -1000으로 설정한 경우

Kernel tunning 2 oom_kill_allocating_task /proc/sys/vm/oom_kill_allocating_task에 위치 값을 변경하여 OOM에 대한 동작을 변경할 수 있음 값 변경 $ sudo echo 0 > /proc/sys/vm/oom_kill_allocating_task Value Action tasklist에 있는 모든 task에 대해 heuristic한 방법으로 kill할 task를 선택 not 0 OOM 상황을 trigger한 task를 선택해서 kill

Kernel tunning 2 overcommit_memory /proc/sys/vm/overcommit_memory에 위치 값을 변경하여 OOM에 대한 동작을 변경할 수 있음 Value Action 커널이 overcommit을 허용할지를 결정할 때, 이미 정의되어 있는 Heuristic한 방식을 적용하여 결정 (default) - 메모리 요구가 있을 때 여유 공간이 없는 경우, 실행중인 프로세스를 강제 종료하여 메모리를 확보 1 항상 overcommit을 수행 2 overcommit이 특정 값을 넘어가지 않도록 방지 - 전체 commit 값 = [Swap space size] + [RAM size] * [overcommit_ratio] / 100

Kernel tunning 2 overcommit_memory 값 변경

Kernel tunning 2 overcommit_ratio /proc/sys/vm/overcommit_ratio에 위치 전체 RAM size에 대해 얼마만큼의 비율을 overcommit 해 줄 것인가를 결정 값 변경 (default : 50)

Kernel tunning 2 swappiness /proc/sys/vm/swappiness에 위치 스왑 메모리에 대한 활용 수준을 조절 값 변경 # echo 10 > /proc/sys/vm/swappiness Value Meaning Swapping 끄기 1 Swapping 최소화 10 메모리가 충분할 경우, 성능향상을 위해 권장 60 기본값 (default) 100 적극적으로 스왑 메모리를 사용

과제 #7 (OOM 정책 분석) 1. OOM 상황이 발생하였을 때, oom_killer 가 어떻게 동작하는지 분석한다. 2. 다음 슬라이드에 나와있는 `__alloc_pages_may_oom` 부터 분석을 시작하며 단순히 함수 콜 관계 뿐만 아니라 그 의미도(함수의 기능, 중요코드) 단계별로 서술한다. 3. 또한 보고서를 작성할 시 다음의 내용을 반드시 포함하도록 한다. (1) oom_killer가 죽일 수 없는 프로세스가 하는 일 + oom_killer내에서 이 작업을 수행하는 코드 (2) oom_killer가 희생자를 선정할 때 사용하는 point 값이 계산되는 코드와 각각의 변수의 의미 (3) adj가 사용되는 부분의 코드와 의미

__alloc_pages_may_oom 함수 콜 관계도  완성된 그림을 보고서에 첨부 함수가 함수를 부르는 것과 순서대로 실행되는 것을 명확히 구분! /mm/page_alloc.c /mm/oom_kill.c __alloc_pages_may_oom out_of_memory Call

과제 #7 (OOM 정책 분석) Due : 2015/06/12 23:59 보고서 표지 OOM 이란? OOM 정책 함수 콜 관계도 각각의 단계별 의미 분석 + 앞에 과제명세에서 요구한 내용 후기 (이번 학기 실습수업 느낀 점 점수와 상관없음, 자유롭게 서술) 보고서 PDF 파일로 위의 내용을 포함해서 메일로 제출 yjuly0708@hanyang.ac.kr 메일 제목 : [운영체제]과제7_학번_김연준 양식을 지키지 않을 시 불이익이 있을 수 있습니다.

공지사항 2015/06/12 실습 수업은 휴강입니다. 지연 과제 제출 마감일 또한 2015/06/12 23:59이며, 그 이후에 보내오시는 과제는 인정되지 않습니다. 과제 4, 5, 6의 경우에는 프로그램의 동작을 확인하여야 하므로 반드시 6/12 전에 조교에게 메일을 보내어 약속을 잡도록 합니다. 한 학기 동안 고생 많으셨습니다. 마지막 기말고사 까지 잘 마무리하시어 좋은 성적 받아가시길 바랍니다.