[척척학사] 디스크 용량 부족으로 인한 JVM 실행 실패 해결기

2026. 8. 2. 01:46·Project/척척학사

이 글은 Velog에서 이전한 글입니다. Velog 원문 보기

문제 상황

EC2 인스턴스에서 Spring Boot .jar 파일을 실행하던 중 다음과 같은 오류가 발생했다.

OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory file:
   367920
Try using the -Djava.io.tmpdir= option to select an alternate temp location.

디스크 상태를 확인하자, 루트 디렉토리(/)가 완전히 가득 찬 상태였다.

ubuntu@ip-172-31-36-253:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.8G  6.7G     0 100% /

EC2 디스크 용량 부족 문제, 유료 전환 없이 해결하는 방법

문제 요약

디스크 용량 부족으로 인해 JVM이 임시 디렉토리에 접근하지 못해 .jar 실행에 실패한 문제


✅ 근본적인 해결 방법 3가지

1. EC2 볼륨 크기 확장 (프리티어 내 가능)

EC2 인스턴스의 EBS 루트 볼륨 크기를 늘리는 방법이다.
예: 8GB → 30GB (30GB까지 프리티어 내에서 무료)

절차:

  1. EC2 대시보드 → 인스턴스 → 루트 볼륨(EBS) 클릭
  2. “작업” > “볼륨 수정” > 새 크기 입력 (ex. 30)
  3. 인스턴스에 접속하여 아래 명령 실행
sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1

2. 로그 및 캐시 주기적 정리 (무료 유지)

불필요한 로그/캐시로 디스크가 가득 찼다면 주기적으로 아래 명령어 실행

일정 주기마다 자동으로 로그를 정리하는 방법이 뒤에서 나온다.

sudo journalctl --vacuum-time=2d
sudo rm -rf /tmp/*
sudo apt-get clean

3. 외부 스토리지 활용 (선택 사항)

Amazon S3 또는 EFS 등을 활용해 로그/파일 업로드 경로를 외부화하면
루트 디스크 부담을 줄일 수 있다.


결과 확인

디스크 용량 확장 후 상태:

ubuntu@ip-172-31-36-253:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  6.5G   22G  23% /
  • 루트 디스크 /dev/root 용량이 29GB로 확장됨
  • 사용량 6.5GB, 여유 공간 22GB → 문제 해결 완료

✅ 자동 로그 정리 설정으로 재발 방지

디스크를 한 번 늘려도 시간이 지나면 다시 공간 부족이 발생할 수 있다.
따라서 시스템 로그가 자동으로 정리되도록 설정하는 것이 중요하다.

systemd journal 로그 용량 제한 설정

설정 파일 열기

sudo nano /etc/systemd/journald.conf

다음 설정 수정

[Journal]
SystemMaxUse=100M # 전체 로그 크기를 100MB로 제한
SystemMaxFileSize=50M # 단일 로그 파일 크기 최대 50MB
MaxRetentionSec=2week # 최대 보관 기간 2주

변경 사항 적용

sudo systemctl restart systemd-journald

정리하며

디스크 용량 부족 문제는 단순히 "jar 파일이 실행되지 않는다"는 현상으로만 나타나지만,
그 원인을 정확히 파악하고 디스크 증설, 로그 정리, 캐시 관리까지 체계적으로 대응해야 한다.
이번 경험을 통해 시스템 리소스를 점검하고 관리하는 능력이 얼마나 중요한지 다시 한 번 느꼈다.

'Project > 척척학사' 카테고리의 다른 글

[척척학사] 🚨 PostgreSQL: duplicate key value violates unique constraint 에러 해결하기  (0) 2026.08.02
[척척학사] CI/CD 적용 과정 With GitHub Actions  (0) 2026.08.02
[척척학사] 상반기 회고: 내가 척척학사에 합류한 이야기  (0) 2026.08.02
[척척학사] 복수전공생도 쓸 수 있게 만들기  (0) 2026.08.01
[척척학사] 포털 데이터 Redis 캐싱 전략 도입기  (0) 2026.08.01
'Project/척척학사' 카테고리의 다른 글
  • [척척학사] 🚨 PostgreSQL: duplicate key value violates unique constraint 에러 해결하기
  • [척척학사] CI/CD 적용 과정 With GitHub Actions
  • [척척학사] 상반기 회고: 내가 척척학사에 합류한 이야기
  • [척척학사] 복수전공생도 쓸 수 있게 만들기
pp8817
pp8817
공부한 내용, 개발 관련 지식, 트러블 슈팅 등을 기록합니다. 이전 블로그: https://velog.io/@pp8817/posts
  • pp8817
    끄적이는 개발 log
    pp8817
  • 전체
    오늘
    어제
    • 분류 전체보기 (273)
      • Project (71)
        • 척척학사 (29)
        • Book (23)
        • Saynow (3)
        • YAPP 27기 (4)
        • 나의 작은 프로젝트 (10)
        • Landit (2)
      • Backend (88)
        • Spring (13)
        • Spring MVC (13)
        • Spring Security (4)
        • JPA (26)
        • Database (19)
        • HTTP·Web (13)
        • Architecture (0)
      • Language·CS (59)
        • Java·Kotlin (5)
        • CS Interview (17)
        • Backend Interview (5)
        • Concepts (32)
      • Algorithm (25)
        • Algorithm (24)
        • 소마 알고리즘 스터디 (1)
      • Infra (8)
      • Troubleshooting (11)
      • Retrospective (6)
      • Etc (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    HTTP WEB 기본 지식
    게시판
    Spring MVC
    Spring
    개념 정리!
    BOJ
    jpa
    척척학사
    나의 작은 프로젝트
    object
    http
    Project
    Book
    OS
    CS Interview
    Python
    interview
    java
    트러블슈팅
    Algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
pp8817
[척척학사] 디스크 용량 부족으로 인한 JVM 실행 실패 해결기
상단으로

티스토리툴바