본문 바로가기
BigData/Spark

Spark App 수행시 memory 이슈

by Tomining 2015. 5. 22.
Spark App 을 수행할 때 종종 아래와 같이 memory 할당 실패로 오류가 발생한다.


실제 장비에서 memory를 할당하지 못한 경우인 것 같은데.
정확한 원인은 알 수가 없다.
일단 로그를 열어보자...

로그파일의 제일 하단에 보면 아래와 같이 나와있다.


swap 영역의 free 공간은 0k로 존재하지 않으며, 실제적인 물리 메모리도 28236k로 약 28MB정도만 남아있다.

Spark App 수행시 기본적으로 jvm_opts 정보를 환경변수로 사용되는데. 로그 중간 부분을 확인해보면 아래와 같이 수행됨을 확인 할 수 있다.


Perm 영역이 128MB이고, xms 가 512MB로 수행된다.

다시 Spark App 수행시 console 로그를 확인해보자.


약 340MB 를 할당하지 못해 오류가 발생하였다.
그럼 왜 340MB 일까? Spark App 수행시 기본적으로 340MB 가 필요한 것일까?

구글링을 해보니 SPARK_MEM과 SPARK_WORK_MEMORY 설정을 통해 memory 를 조절하라고 조언을 한다.
현재 512MB로 설정되어 있는 work_memory를 얼마나 더 줄여야 하는지 감이 오질 않는다.
권장 memory 설정은 없는지. Test 환경에서는 어느 정도가 적당한지 확인해 볼 필요가 있을 것 같다.

임시로 Spark Cluster를 재구동 후 수행하면 memory 오류가 발생하지 않는다.