Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating System 14주차 - Linux OOM Killer -

Similar presentations


Presentation on theme: "Operating System 14주차 - Linux OOM Killer -"— Presentation transcript:

1 Operating System 14주차 - Linux OOM Killer -
Real-Time Computing and Communications Lab. Hanyang University

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

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

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

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

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

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

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

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

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

11 Kernel tunning 1 allocTest.c

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

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

14 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

15 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

16 Kernel tunning 2 overcommit_memory 값 변경

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

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

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

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

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

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


Download ppt "Operating System 14주차 - Linux OOM Killer -"

Similar presentations


Ads by Google