멀쩡하게 사용가능한 메모리가 많이 있는데 갑자기 hadoop 관련 java 프로세스가 미친듯이 swap out 하는 것을 경험함.

구글링 해보니 vm.swappiness 값에 따라 그런 경우가 일어날 수 있다는 권고사항이 있음.


vm.swappiness 는 kernel이 application data를 memory에서 disk로 swap하는 경향성에 대한 값인데,

이 값이 높으면 높을수록 application data를 swap하는 경향이 강해지게 됨.


일반적인 Linux 시스템에서 이 값은 60으로 세팅되어 있는데,

Hadoop을 돌릴 경우 60이란 값은 갑자기 미친듯이 swap out하게 만들 수 있다고 함.

// vm.swappiness 값 확인

[root@localhost]# cat /proc/sys/vm/swappiness

60


그래서 권장사항이 vm.swappiness를 0으로 세팅하는 것. 

=application data를 swap out하지 않겠다.

// 아래 명령어로 vm.swappiness값 변경

[root@localhost]# sysctl -w vm.swappiness=0





[참고]

http://www.cloudera.com/content/cloudera/en/documentation/cdh4/v4-2-0/CDH4-Installation-Guide/cdh4ig_topic_11_6.html

https://www.safaribooksonline.com/library/view/hadoop-operations/9781449327279/ch04.html







Posted by bloodguy
,