메뉴 닫기

oom killer 데몬 설정

OOM Killer(Out of Memory Killer) 는 시스템이 실제 메모리와 가상 메모리 공간(스왑)을 다 사용해 필요한 메모리 공간을 

새로 확보 할수 없는 경우 프로세스를 종료시켜 여유 메모리를 확보하는 LINUX 커널의 매커니즘중 하나!!!

일명 out of memory 발생 !! 

OOMKILLER 설정 방법 

vm.overcommit_memory

0 : heuristic에 따라 overcommit 할 수 있고, 하지 않을 수도 있다.(디폴트) 메모리 요구가 있을 때 여유 공간이 없는 경우 실행중인 프로세스를 강제 종료 메모리를 억지로 확보함.

1 : 항상 overcommit 함. 메모리를 다 사용했는데도 충분한 메모리가있는 것처럼 처리 됨. 그 외에는 0과 같음.

2 : overcommit하지 않음. 메모리가 부족할 경우 메모리 확보시 에러 발생시킴. [Swap size] + ([RAM size] * vm.overcommit_ratio/100).

vm.overcommit_ratio

사용 가능한 메모리의 백분율로 정의. overcommit_ratio의 디폴트는 50.

메모리 정보 확인 

1.jpeg

1G사용중

2.jpeg

상한가는 500메가 사용중인 메모리는 70메가 확인

 1. vm.overcommit_memory = 0 or 1 일 경우 현재 환경에서 메모리 확보 테스트

메모리 부하 소스 C언어로 작성 

3.jpeg

c언어로 메모리 부하 소스 저장하 gcc를 이용해 컴파일후 ./a.out 실행 

4.jpeg

out of memory 발생 확인 

2. vm.overcommit_memory = 2, vm.overcommit_ratio = 99 일 경우 테스트

5.jpeg

overcommit_ratio 를 기본 50에서 99로 올리고 overcommit_memory 설정을 2로 변경

1G 메모리를 다 사용하지 않던 서버가 전부 사용 상향 리밋에 표시 된다 

아까와 마찬가지로 C언어 소스 실행 

이번에는 서버가 죽지 않고 제어가 프로그램으로 넘어거 예외 처리를 할 수 있는 구조가 된다

마지막으로 리부팅시에도 적용이 되도록 /etc/sysctl.conf 에도 등록 해 준다

 

 

[polldaddy rating=”7739789″]