안녕하세요.
말씀해 주신 부분을 적용하고나서 해결이 되는듯 싶었으나 메모리 점유 상황이 계속되고 있습니다. :(
이상하게도 같은 실험을 반복하는데도 어느 순간에는 메모리 점유가 풀렸다가도, 다시 보면 메모리를 잡고 안풀어주고 있을 때도 있네요.
다음은 TPC-H 1번 쿼리를 실행하면서 발견한 점입니다.
TajoWorker가 메모리를 점유하고 난 이후, 디스크 버퍼 캐시를 drop 하였음에도 불구하고 쿼리 실행 속도가 빨라지는 것을 확인했습니다. 캐시 drop 후에 dstat 명령어로 작동 상황을 모니터링할 때 디스크 읽는 양을 보면 분명 데이터는 디스크에서 읽어오는것으로 보이는데, 읽는 시간은 평균 약 40% 가량 빨라지는 것을 반복확인했습니다. 그런데, 데이터를 TajoWorker가 가지고 있어서 디스크를 덜 읽는다던지 하는 버퍼매니저 기능은 0.11.1 버전의 타조에는 없는걸로 아는데요.
참고로 아래는 force gc 한 이후 top을 사용하여 메모리 점유량 순으로 정렬했을 때 모습입니다.
pid 1476이 TajoWorker입니다. (force gc 한 이전/이후가 메모리 점유량이 같습니다)
총 메모리가 16GB니까 약 8GB 정도를 가지고 놓질 않고있네요. :(
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1476 hadoop 20 0 10.750g 8.090g 5336 S 0.3 52.0 56:52.25 java
30848 hadoop 20 0 1771940 124900 5096 S 0.3 0.8 1:18.17 java
3515 hadoop 20 0 101208 6324 2996 S 0.0 0.0 0:00.04 sshd
2016년 8월 9일 화요일 오후 8시 32분 34초 UTC+9, Jinho Kim 님의 말: