뽀미의 개발노트

Javascript heap out of memory 문제 해결..? (급한 불 끄기) 본문

회사 업무 정리

Javascript heap out of memory 문제 해결..? (급한 불 끄기)

산타는 뽀미 2023. 10. 18. 10:46

node.js 깔고 git 깔고 user.name, user.email 설정하고 깃랩에서 깃클론 받아서

npm run serve 만 하면 그렇게나 javascript heap out of memory 오류가 나는것.... 페이지가 켜지지 않고 뭐가 안된다고.. 뭐 방화벽인가 그런거 확인하라고만 계속 떴다.


<참고블로그>

https://velog.io/@server30sopt/heap-out-of-memory-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%EA%B3%BC-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%88%84%EC%88%98-%EA%B2%80%EC%82%AC

 

heap out of memory 에러 해결과 메모리 누수 검사

작성자: 추서연 작성자의 한마디: "가장 좋은 방법은 누수 없는 코드 짜기,,"

velog.io


해결책은 1) 더 큰 메모리 할당해주는거랑 2) 메모리 누수 검사라는데 일단 1번 더 큰 메모리 할당 해주는걸로 긴급조치만 마쳤다. 가장 좋은 방법은 메모리가 누수되지 않게 코드를 짜라는데 그거 뭔데.. 어떻게 하는건데..!ㅠㅠㅠ

$ node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'

이걸로 현재용량을 확인했는데 2000 대였다. 사수님 컴퓨터로는 4000대라는데 원인은 모르겠지만 어쨌든 내 컴퓨터에서 뭐 메모리가 부족한가보다. 그래서 용량 늘리는 방법을 겁나게 많이 검색하고 명령어 시키는대로 다 했는데 안됐다.

그러다가 어떤 한 명령어를 치니 됐다!! 근데 분명이 아까 했을땐 안 됐는데 말이지.. 어쨌든

$ export NODE_OPTIONS=--max_old_space_size=8192

이 명령어를 쳐서 해결됐다. 저거 비슷한 걸로 엄청 많은 버전이 있고 대부분 max-old-space-size 이렇게 하이픈으로 나와있었는데 언더바로 했더니 해결됐다. 근데 그냥 터미널에 저 명령어만 치면 재부팅하거나 서버를 재배포할 때마다 코드를 입력해야 하므로 .bashrc 파일에 저 코드를 그대로 추가해줘도 된다.

vi ./.bashrc

이걸 치고 들어가서 입력해줘도 된다는데.. 설정 바꿨다가 에러 날까 두려워서 아직 추가하지는 않았다. 그냥 위 export 코드를 터미널에 입력해서 잠깐 용량 늘리고 했더니 되길래 그냥 그대로 했다. 근데 재부팅했더니 또 똑같은 문제 발생함. 아무래도 bashrc에 저코드를 추가해서 기억하게 해줘야겠다..!

아니 근데 bashrc에 설정 추가해줬는데도 여전히 같은 오류가 뜬다ㅠㅠㅠ 그래서 그냥 다시 저 명령어 한번 치고 npm run serve했더니 그제서야 구동됨.. 아니 왜 저래 진짜?? 다른 팀원분들께도 똑같은 오류가 뜬다던디 먼가 모듈이 추가되면서 메모리를 많이 잡아먹어서 그런것 같다고 하셨따... ㅂㄷㅂㄷ

심지어 bashrc가 아주 거지같은게 방향키가 잘 안 먹는다!! 방향키 누르면 자꾸 ABC 이런 대문자 영어 알파벳이 눌리는데 왜그러는지를 모루겟넹ㅠㅠ 암튼 i,(입력), ESC,(입력취소), :q! (걍 나가기), :wq! (저장후 나가기) 뭐 이런 명령어들 사용해서 어찌저찌 환경변수 추가했는데 그래도 안됨. 참고한 블로그 안에 메모리 누수 막는 법 나와있었는데 뭔가 적용하기 어려워보임.. 어디서 메모리가 누수되는지는 볼 수 있는거 같은데 그 다음 단계가 없음.. 흥헹헹ㅠㅠ

 

 

'회사 업무 정리' 카테고리의 다른 글

Chromium과 V8엔진  (0) 2023.10.20
Typescript란?  (0) 2023.10.20
MobX란?  (0) 2023.10.20
DOM과 Virtual DOM  (0) 2023.10.20
리눅스 node.js 설치  (0) 2023.10.18