반응형

vm환경에서 CentOS를 사용하다가, 특정 프로세스가 메모리점유를 많이해버려서, 메모리가 부족하게 되면,

커널 설정에 따라, oom-killer가 동작을 하고, 원하지 않는 서비스가 제멋대로 kill되어 버리는 상황이 발생한다.


메모리가 부족해도 서비스가 돌아가야 하는 상황에서는, vm.overcommit_memory 값을 변경하여

프로세스가 kill되지 않도록 할 수 있다.


vm.overcommit_memory값은 0~2까지 설정할 수 있으며, 값에 대한 정의는 아래와 같다.

- 0 : 메모리 부족 시 프로세스를 kill

- 1 : 항상 overcommit 허용 (kill하지 않음)

- 2: vm.overcommit_ratio에 설정된 범위만큼만 overcommit을 허용)


여기서는 항상 overcommit을 허용하도록 세팅을 해보도록 하겠다.

$ sysctl vm.overcommit_memory = 1     # 커널 설정 변경
$ echo "vm.overcommit_memory=1" >> /etc/sysctl.conf  # 재부팅 시에도 유지할 수 있도록 파일에 추가
$ sysctl -a | grep overcommit_memory   # 확인


반응형
,