티스토리 뷰

 

https://ekeprl.tistory.com/57

 

서버호스팅 (4.5) – [Ubuntu] 서버에 Git으로 프로젝트 배포(Error: 1698-28000: Access denied for user 'root'@'loc

https://ekeprl.tistory.com/56 서버호스팅 (4) – [Ubuntu] 서버에 Git으로 프로젝트 배포하기https://ekeprl.tistory.com/55 서버호스팅 (3) – [Ubuntu] Nginx 설치https://ekeprl.tistory.com/54 서버호스팅 (2) – [Ubuntu] 서버 초

ekeprl.tistory.com

 

지난번 포스팅( Git으로 프로젝트 배포 )에 이어서 서버에 프로젝트 배포하고 실행을 해보려고

echo " 최신 코드 받는 중..."
cd /var/www/프로젝트이름
git pull origin master

echo " 빌드 중..."
./gradlew clean bootJar

# 빌드 성공 확인
if [ $? -ne 0 ]; then
echo " 빌드 실패!"
exit 1
fi

echo " 빌드된 jar 파일:"
ls -la build/libs/

# 빌드된 jar를 실행 위치로 복사
echo " jar 파일 복사 중..."
cp build/libs/*.jar 프로젝트-0.0.1-SNAPSHOT.jar

echo " 서버 재시작 중..."
pkill -f ekeprl
sleep 3
nohup java -Djava.net.preferIPv4Stack=true -jar ekeprl-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

echo " 배포 완료!"
echo "실행 중인 프로세스:"
ps aux | grep java | grep -v grep

echo ""
echo " 로그 확인: tail -f app.log"

deploy.sh를 실행했는데..!

 

에러 로그

 본 키 없이 없는 에러로그가 날 반겨주고 있었다..

 

우선 빌드에 실패했으니 원인 파악부터 들어가 보자

 

-Xms256m,-Xmx512m
Gradle build daemon disappeared unexpectedly

로그의 마지막에 원인을 알려주고 있다.

Gradle Demon이 메모리 부족으로 죽는 것이 문제였던 것이다..!

 

1GB 서버의 메모리를 자세히 살펴보자면

메모리 확인

 

  • 총 메모리: 961MB
  • 사용 중: 654MB
  • 여유: 295MB
  • Swap: 0B 

여기서 0B로 나오는 Swap이란?

 : RAM처럼 쓰는 가상메모리를 뜻한다.

왜 Swap이 필요할까?

 : 일반 실행 시: Java 앱(300MB) + MariaDB(150MB) + Nginx(10MB) = 약 460MB → 여유 O

   빌드 시: 기존 프로세스 + Gradle(512MB) = 약 970MB → 여유 X

Swap 없을 때:

  • 빌드 시작 → 메모리 꽉 참
  • OS가 급하게 프로세스 죽임 (OOM Killer)
  • "어떤 걸 죽일까?" → Gradle 선택
  • 빌드 실패!

Swap 있을 때:

  • 빌드 시작 → RAM 부족
  • 당장 안 쓰는 데이터를 Swap으로 이동
  • 빌드 계속 진행 → 성공! 

따라서 메모리가 부족할 때 Swap을 이용하면 도움이 된다.

# 1. Swap 파일 생성 (메모리x2)
sudo fallocate -l 2G /swapfile

# 2. 권한 부여
sudo chmod 600 /swapfile

# 3. Swap 설정
sudo mkswap /swapfile

# 4. Swap 활성화
sudo swapon /swapfile

# 5. 확인
free -h

각 명령어를 통해 Swap을 설정하고 확인해 본다.

 

Swap 적용 후 빌드

 

Swap을 적용 후 빌드를 진행해 보았다.

기존 약 4~5분 정도 걸리다가 실패했던 전과 달리

시간이 굉장히 많이 단축되는 것을 확인할 수 있다.

 

이상 포스팅은 여기까지..!

감사합니다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함