React 로 개발을 하면서 프론트 서버가 가끔 강제 종료되는 일이 자주 발생했다. JavaScript heap out of memory라고 오류 메세지가 출력 되는데 이유를 살펴보니 node.js가 과도하게 메모리 점유를 해서 발생한다. 해결 방법으로 더 큰 메모리를 할당 해 주면 된다고 하여 8GB를 할당 해 주었다.
해결 1
할당 해주는 방법은 터미널에
export NODE_OPTIONS="--max-old-space-size=8192"
위 코드를 입력해주면 해결 된다.
하지만 대부분 1시간을 버티지 못하도 다시 서버가 강제 종료 되었다.
알고 보니 너무 많이 할당을 해주어도 문제이다.
내 노트북은 8gb 램인데 다 할당을 해주니 다른 프로그램이 할당 받을 것을 다 뺏어버린 것이다. 결국 충돌로 꺼지게 된다는것을 알게 되었다. 과유 불급이었다.
해결 2
그래서 1gb부터 8gb까지 1기가씩 증가시켜서 램을 할당 해주니 3gb가 딱 적당했다. export NODE_OPTIONS="--max-old-space-size=3072"
나는 이 오류로 2달을 고생했다. 지금이라도 고쳐서 다행이다. 구글링으로 알기 어려우니 글을 남겨서 다른 사람들도 램을 적당히 할당해주길 바란다.