본문 바로가기
TIL

TIL 240812 - ubuntu에서 node.js에 할당된 메모리 한도 늘리기

by lemonpie611 2024. 8. 12.

CI/CD 설정을 해놔서 ec2 에서 알아서 pull 하고 build, start까지 실행돼야 하는데, 그게 잘 안되는것 같았다.

그것도 모르고 '왜 로직을 추가했는데 안되는거야...' 하며 몇시간을 날림ㅎ..

 

build를 수동으로 하면 이런 에러가 뜬다.

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

 

뭔가 메모리가 부족하다는것 같았는데, 찾아보니 빌드 과정에서 사용하는 메모리의 양이 시스템의 한계를 초과해서 나타난 에러라고 한다.

기본적으로 node.js는 약 1.5GB의 메모리를 사용하도록 설정되어있는데, 위와 같이 메모리가 부족하면 한도를 늘리는 것도 가능하다.

 

다음 명령어로 한도를 4GB로 늘린다.

export NODE_OPTIONS="--max-old-space-size=4096"
npm run build

 

근데 이건 일회성이고, CI/CD 마다 할려면 package.json scripts의 build 명령어를 다음처럼 수정해줘야 한다.

"scripts": {
  "build": "node --max_old_space_size=4096 node_modules/.bin/nest build"
}