vm.swappiness 는 리눅스에서 사용하는 커널 매개변수임

 

default 값은 60이며, 0 ~ 100 값을 갖을 수 있음.

 

100에 가까울수록, (메모리에 여유 공간이 있음에도 불구하고) 메모리 내의 데이터를 디스크(가상 메모리)로 swap 함

0에 가까울수록, (메모리에 여유 공간이 있음) 메모리 내의 데이터를 디스크(가상 메모리)로 swap 하지 않음

 

만약 0으로 설정해두었는데 메모리 내에 여유 공간이 없다면, 파일 시스템 버퍼가 강제로 삭제된다고 함.

 

Hadoop 데이터 노드가 동작하는 리눅스상의 vm.swappiness 는 0으로 맞춰주는 것이 좋다.

이유 : 

Swapping Hadoop daemon data to disk can cause operations to timeout and potentially fail if the disk is performing other I/O operations. [출처]

(Hadoop 데몬 데이터를 디스크로 스왑하면 작업이 디스크가 다른 I/O 작업을 수행하는 경우 시간이 초과되고 잠재적으로 실패합니다.)

 

(해석해보자면 다음과 같다.

Hadoop 데이터 노드 데몬에서 메모리에 올려 사용하는 데이터들이 있을 것이다.

Hadoop 에서는 다른 노드로부터 데이터를 가져오고 보내는 경우가 빈번한데

이렇게 외부 데이터를 IO 하는 작업을 진행하는 도중에

데몬이 사용하는 메모리 내 데이터가 swap 을 하게 되면 시간이 오래 걸리기 때문에

time out 이 발생할 수 있다.

개인적인 해석이므로 틀릴 수 있음)

 

 

 

참고

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

https://docs.cloudera.com/documentation/enterprise/5-12-x/topics/cdh_admin_performance.html#cdh_performance__section_xpq_sdf_jq

 

+ Recent posts