티스토리 뷰
서버호스팅 (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을 적용 후 빌드를 진행해 보았다.
기존 약 4~5분 정도 걸리다가 실패했던 전과 달리
시간이 굉장히 많이 단축되는 것을 확인할 수 있다.
이상 포스팅은 여기까지..!
감사합니다.
'Project > Server' 카테고리의 다른 글
| 서버호스팅 (4.5) – [Ubuntu] 서버에 Git으로 프로젝트 배포(Error: 1698-28000: Access denied for user 'root'@'localhost' 트러블슈팅) (0) | 2025.11.10 |
|---|---|
| 서버호스팅 (4) – [Ubuntu] 서버에 Git으로 프로젝트 배포하기 (0) | 2025.11.06 |
| 서버호스팅 (3) – [Ubuntu] Nginx 설치 (0) | 2025.11.04 |
| 서버호스팅 (2) – [Ubuntu] 서버 초기 세팅 (0) | 2025.10.21 |
| 서버호스팅 (1.5) – [Ubuntu] SSH KEY를 이용한 서버 (0) | 2025.10.16 |