외장_하드
외장하드
외장_하드
전체 방문자
오늘
어제
  • 분류 전체보기 (429)
    • 국내 여행 (197)
      • 수도권 (20)
      • 충청도 (17)
      • 강원도 (32)
      • 전라도 (21)
      • 경상도 (50)
      • 제주도 (57)
      • 나들이 (0)
    • 일상 (40)
      • 휴식 (15)
      • 취업 준비 (19)
      • 월간일상 (3)
      • 군생활 (3)
    • 국외 여행 (50)
      • 일주 준비 (4)
      • 중국 (11)
      • 대만 (5)
      • 태국 (20)
      • 일본 (10)
    • 취미 (19)
      • 제품 후기 (11)
      • 지식 (8)
    • 자동차 (21)
      • 뉴 그랜저 XG (15)
      • 올 뉴 K3 (5)
    • IT (102)
      • Spring (18)
      • DataBase (11)
      • AWS (22)
      • GIT | github (9)
      • 기타 (23)
      • 머신러닝 | 딥러닝 (8)
      • Tech | Eng (3)
      • Python (2)
      • nodejs (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • EC2
  • 방법
  • 스프링
  • 강원도
  • 푸켓
  • 코스
  • 부산
  • 뚜벅이
  • 제주도
  • aws
  • 추천
  • 여행
  • 카페
  • 가성비
  • 스쿠터
  • 혼자여행
  • 전라도
  • 설치
  • 후기
  • 주차장

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
외장_하드

외장하드

[React] EC2/라이트세일 서버에서 리액트 npm start 배포/빌드/구동시 서버 멈춤 해결하기 / 메모리 부족 / 스왑 메모리 설정 / Swap Memory
IT/nodejs

[React] EC2/라이트세일 서버에서 리액트 npm start 배포/빌드/구동시 서버 멈춤 해결하기 / 메모리 부족 / 스왑 메모리 설정 / Swap Memory

2023. 7. 29. 17:08
반응형

현상

로컬환경에서 리액트 프론트앤드 서버구축을 끝냈고 git 저장소로 올려 이제 서버 배포하는 단계에서 문제가 일어났다. 서버 터미널에서 npm start 명령어를 이용해 앱을 실행하면 빌드과정을 거쳐 앱이 구동되는데.. 위 화면을 마지막으로 계속 터미널 접속이 멈추는것... 위 터미널만 멈추는 것이 아니고.. 새 터미널로 서버에 접속하려고해도.. 서버에서 응답을 주지 않았다. 즉..서버가 뻗어버린 것.. 기존에 올라가있던 앱들도 무응답을 현상을 보였다. 

메모리 부족

그래서 원인이 뭘까 추측과 테스트를 반복하는 과정에서 놀랍게도 진짜 리앱트 앱이 구동될때만 이런 현상이 나타나기 시작했다. 그럼 왜.. 리액트 앱이 구동될때 이렇게 되는걸까..? 가장 먼저 의심이 들었던건 설마..? 메모리부족..? 일까..? 현재 내 라이스테일 서버 스펙은 1GBRAM, 1 vCPU, 40GB SSD 을 사용하고 있다. 아... 램이 1기가면 .. 좀 적긴하구나해서 한번 확인해봤다.

watch -n 1 free -h # 실시간 확인
# or
free -h # 한번만 확인

한쪽 터미널에서 npm start 명령어를 이용해 react frontend 서버를 부팅했고 free 명령어를 이용해서 구동되는 순간부터 찍어보니까 ..일단 free 메모리는 끝까지 사용하다가 결국.. 더이상 남는 공간이 없어서 빌드를 못하는 것 같았다. 결론은 빌드되는데 필요한 메모리가 부족한 것이었다.

Swap 메모리 설정

sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=8096
sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile

위 명령어를 순서대로 입력하면 스왑 메모리가 설정된다. 

free

free 명령어를 이용해서 확인해보면 처음에 없었던 Swap 메모리가 설정된 것을 볼 수 있다. 그리고 다시 리액트 앱을 구동해보면 정상 실행 될 것이다. 

OOM 발생하는 경우

나는 위 설정까지 마치고도 아래 오류가 발생했다.

  • FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

앱이 구동되면서 힙메모리 이상으로 메모리사용이 안되어서 발생한 것이다. 나도 발생했고 아래 방법을 통해서 해결해주면 된다.

https://extsdd.tistory.com/451

 

[React] 리액트 실행시 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 에러 발생 /

현상 로컬에서 만든 react 프론트 앤드를 라이트세일 서버에 올렸고 npm start 커멘드를 이용해 실행시켰는데 위처럼 나왔다. FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 내용을

extsdd.tistory.com

Swap 메모리 해제

sudo swapoff -v /mnt/swapfile
sudo rm /mnt/swapfile
반응형
저작자표시 비영리 변경금지 (새창열림)

'IT > nodejs' 카테고리의 다른 글

[nodejs/React] Nginx <> React 프론트앤드 리버스 프록시 접속시 Invalid Host 페이지 해결 방법 / DANGEROUSLY_DISABLE_HOST_CHECK=true  (1) 2023.07.29
[React] 리액트 실행시 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 에러 발생 / 힙메모리 부족  (0) 2023.07.29
[라이트세일/EC2] 우분투 리눅스 서버에 nodejs express / react 배포하기 / 프론트앤드, 백앤드 API 프로젝트/ git 배포방법  (0) 2023.07.23
[nodejs] express 프로젝트 실행시 MODULE_NOT_FOUND 에러 해결 방법 / Error: Cannot find module 'package'  (0) 2023.07.23
[Mac 환경설정] 라이트세일/EC2 우분투 리눅스 서버에 nodejs, npm 설치방법  (0) 2023.07.18
    'IT/nodejs' 카테고리의 다른 글
    • [nodejs/React] Nginx <> React 프론트앤드 리버스 프록시 접속시 Invalid Host 페이지 해결 방법 / DANGEROUSLY_DISABLE_HOST_CHECK=true
    • [React] 리액트 실행시 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 에러 발생 / 힙메모리 부족
    • [라이트세일/EC2] 우분투 리눅스 서버에 nodejs express / react 배포하기 / 프론트앤드, 백앤드 API 프로젝트/ git 배포방법
    • [nodejs] express 프로젝트 실행시 MODULE_NOT_FOUND 에러 해결 방법 / Error: Cannot find module 'package'
    외장_하드
    외장_하드
    자동차 / 여행 / 취업 / 일상 / IT / 코딩

    티스토리툴바