RHEL에서 Webpack Dev Server가 OOM(137)으로 계속 죽을 때 내가 한 실제 트러블슈팅
- 원격 RHEL 서버에서
npm run local을 실행했는데 계속 죽었음echo $?→ 137dmesg→Out of memory: Killed process (webpack)- 서버 스펙: RAM 6.8 GiB, Swap 7.2 GiB (거의 다 사용 중)
- 먼저 클린 설치를 시도했음
rm -rf node_modules/ node -v nvm use 16 npm i npm i --legacy-peer-deps npm run local- 하지만 여전히 OOM으로 죽음
- 프로세스 종료 원인을 확인했음
echo $? dmesg | tail -n 50 | grep -i -E "killed process|out of memory" free -h ulimit -a- 종료코드 137 → OOM 맞음
dmesg에서도 커널이webpack을 kill한 로그 확인
-
Node 힙 크기를 늘렸음
export NODE_OPTIONS="--max-old-space-size=3072" # 3GB 권장 (6.8Gi 박스) -
Swap을 16 GiB 추가했음
sudo fallocate -l 16G /swapfile2 || sudo dd if=/dev/zero of=/swapfile2 bs=1G count=16 sudo chmod 600 /swapfile2 sudo mkswap /swapfile2 sudo swapon /swapfile2-
처음에
/swapfile2 none swap sw 0 0을 직접 실행했다가 허가 거부가 발생했음 -
그래서
fstab에 추가하는 방식으로 수정했음:echo '/swapfile2 none swap sw 0 0' | sudo tee -a /etc/fstab
-
-
디스크 여유도 확인했음
df -h /
- 결과
- Swap 총량이 늘어나면서 webpack dev server가 더 이상 OOM으로 즉시 죽지는 않음
- 빌드가 끝까지 돌아가기 시작했음
- 다만 스왑을 많이 쓰는 구조라 여전히 속도는 느림
- 교훈
- 137 코드가 나오면 바로
dmesg확인해야 함 - Node 힙 상한과 Swap 추가만으로도 dev server를 안정화시킬 수 있음
- 하지만 궁극적으로는 RAM 증설이 필요하다고 봄
- 137 코드가 나오면 바로
- 추가
npm i --legacy-peer-deps로 설치하니까 문제 발생함.
댓글
첫 번째 댓글을 남겨보세요.