최적화 ⏱️ 약 9분

메모리·JVM 인수 가이드 — 대형 모드팩 끊김 해결의 기술적 답

대형 모드팩에서 가장 흔한 "갑자기 1초씩 멈춰" 문제는 JVM의 GC(가비지 컬렉션) 끊김 때문. RAM 할당량 + Aikar's Flags + G1GC 튜닝으로 해결하는 기술적 답을 단계별로 정리.

📑 목차 (11개 섹션)
  1. 들어가며 — 왜 RAM만 늘려서는 안 되는가
  2. 1단계 — RAM 할당량 정하기
  3. 2단계 — Aikar's Flags 적용
  4. 3단계 — 12GB 이상 할당 시 추가 튜닝
  5. 4단계 — JDK 버전 확인
  6. 5단계 — 성능 최적화 모드 4종 추가
  7. 6단계 — 성능 측정 도구
  8. 흔한 문제 진단
  9. 11살 자녀와 함께할 때의 의미
  10. 마무리
  11. 함께 읽으면 좋은 글

들어가며 — 왜 RAM만 늘려서는 안 되는가

저희 가족이 ATM10·DarkRPG 같은 대형 모드팩을 돌리면서 가장 자주 듣는 질문은 "RAM 16GB 충분히 줬는데 왜 끊겨?"입니다. 답은 단순: RAM 양보다 "JVM이 그 RAM을 어떻게 쓰느냐"가 더 중요합니다.

이 가이드는 [성능 최적화 가이드](/guides/performance-optimization/)의 기술적 후속편으로, JVM 인수(arguments) 튜닝까지 깊이 들어갑니다. 자녀와 함께 매주말 가족 모드팩 시간이 "끊김 없이 부드럽게" 흐르도록 만드는 게 목표.

1단계 — RAM 할당량 정하기

모드팩 규모별 권장 할당

| 모드팩 크기 | 권장 RAM | 최소 PC RAM | |---|---|---| | 바닐라+ (모드 10~30개) | 4~6 GB | 8 GB | | 중형 (모드 50~150개) | 6~10 GB | 12 GB | | 대형 (모드 200~400개) | 10~14 GB | 16 GB | | 키친싱크 (모드 400+) | 14~18 GB | 24 GB |

핵심 원칙: "PC RAM의 절반보다 약간 적게"

PC RAM 16GB라면 모드팩에 8~10GB 할당이 적정. OS·브라우저·디스코드에 6~8GB 남기는 게 필수. 16GB PC에 14GB 다 주면 시스템이 멈춥니다.

CurseForge·Modrinth에서 RAM 설정

CurseForge 앱:

  • 좌측 사이드바 → "Settings" (톱니바퀴)
  • "Minecraft" 탭 → "Java Settings"
  • "Allocated Memory" 슬라이더로 조정
  • Modrinth 앱:

  • 인스턴스 우클릭 → "Edit instance"
  • "Java" 탭 → "Memory"
  • 슬라이더로 조정
  • 2단계 — Aikar's Flags 적용

    왜 Aikar's Flags인가

    바닐라 마인크래프트 서버는 기본 GC(Garbage Collection) 설정이 약합니다. Aikar's Flags는 Minecraft 서버 운영자 Aikar가 수년간 튜닝한 JVM 인수 세트로, GC 끊김(TPS lag spike)을 50~80% 감소시켜줍니다. 모드팩 클라이언트에서도 적용 가능하지만, 클라이언트 환경에서는 일부 환경에서 '간헐적 긴 끊김'·'oldgen GC 과다' 같은 부작용 가능. 효과 보면 그대로 유지, 안 보이면 인수 일부 조정.

    권장 JVM 인수 (복사·붙여넣기)

    -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true
    

    인수 입력 위치

    CurseForge 앱:

  • Settings → Minecraft → Java Settings
  • "Additional Arguments" 칸에 위 인수 전체 붙여넣기
  • Modrinth 앱:

  • 인스턴스 Edit → Java → "Custom Arguments"
  • 위 인수 전체 붙여넣기
  • 3단계 — 12GB 이상 할당 시 추가 튜닝

    12GB 이상 할당하는 경우 Aikar's Flags의 두 값을 다음으로 변경:

  • -XX:G1NewSizePercent=40 (기본 30에서 40으로)
  • -XX:G1MaxNewSizePercent=50 (기본 40에서 50으로)
  • -XX:InitiatingHeapOccupancyPercent=20 (기본 15에서 20으로)
  • -XX:G1ReservePercent=15 (기본 20에서 15으로)
  • 이유: 큰 힙(heap)에서는 Young Generation 비율을 늘려 GC 빈도를 더 줄일 수 있음.

    4단계 — JDK 버전 확인

    권장 JDK 버전

  • 마인크래프트 1.17+: JDK 17 필수
  • 마인크래프트 1.20.5+: JDK 21 권장
  • JDK 8/11: 1.16 이하 구버전만
  • JDK 21이 더 빠른 이유

    JDK 21은 G1GC가 더 효율적이고, ZGC·Shenandoah 같은 새 GC 옵션도 있습니다. ATM10·DarkRPG처럼 1.21 모드팩이면 JDK 21로 업그레이드 시 추가 10~20% 성능 향상.

    JDK 자동 설정

    CurseForge·Modrinth 앱은 모드팩이 요구하는 JDK를 자동 다운로드·사용합니다. 수동 설정 거의 필요 없음.

    5단계 — 성능 최적화 모드 4종 추가

    JVM 튜닝만으로는 한계가 있습니다. 다음 4개 모드를 함께 깔면 효과 폭증:

  • [Embeddium](/mods/embeddium/) — Sodium의 Forge 포팅. FPS 30~50% 향상
  • [FerriteCore](/mods/ferritecore/) — 메모리 30~50% 절감
  • [ModernFix](/mods/modernfix/) — 런타임 패치. 끊김 80% 감소
  • [Entity Culling](/mods/entity-culling/) — 안 보이는 엔티티 렌더링 스킵
  • 넷 다 함께 깔면 8GB RAM PC도 16GB 같은 부드러움 — 저희 자녀 보조 PC(8GB)에서 직접 확인.

    6단계 — 성능 측정 도구

    F3 디버그 화면

    게임 안에서 F3 키 → 좌측 상단:

  • FPS: 초당 프레임. 60+ 권장, 30 이하면 끊김 체감
  • Mem: 메모리 사용량 / 할당량. 90% 넘으면 GC 빈발
  • GC: 가비지 컬렉션 빈도. 잦으면 끊김 원인
  • Memory Usage Title 모드

    [Memory Usage Title](/mods/memory-usage-title/)을 깔면 마인크래프트 창 제목 표시줄에 메모리 사용량이 실시간 표시됩니다. F3 안 눌러도 모니터링 가능.

    흔한 문제 진단

    문제 1: "메모리 충분한데 1초씩 멈춰"

  • 원인: GC 끊김
  • 해결: Aikar's Flags + G1GC 튜닝
  • 문제 2: "부팅 시 OutOfMemoryError"

  • 원인: 할당량 부족 또는 32-bit Java 사용
  • 해결: 64-bit JDK 확인 + 할당량 증가
  • 문제 3: "인게임 FPS 30 이하"

  • 원인: GPU 부족 또는 렌더 거리 과다
  • 해결: Embeddium 설치 + 렌더 거리 10~12 청크
  • 문제 4: "청크 로딩 시 멈춤"

  • 원인: 디스크 IO + 청크 생성 부하
  • 해결: SSD 사용 + Fastload·FerriteCore 설치
  • 11살 자녀와 함께할 때의 의미

    자녀가 "왜 끊겨?" 짜증 내는 순간이 가장 흔한 가족 플레이 마찰. JVM 튜닝은 자녀가 직접 인식 못 하지만 "끊김 없는 부드러운 흐름"으로 그 마찰을 사전 방지하는 보이지 않는 받침. 부모가 30분 투자해서 평생 쓰는 가족 모드팩 환경이 됩니다.

    마무리

    저희 가족 경험으로는 RAM 16GB PC에서 ATM10 돌릴 때:

  • 튜닝 전: 부팅 6분, 끊김 10초마다 1회
  • Aikar's Flags + 최적화 모드 4종 후: 부팅 3분, 끊김 거의 없음
  • 같은 PC에서 두 배 가까이 부드러워집니다. 한 번 세팅하면 모든 모드팩에 그대로 적용되니, 모드팩 처음 시작할 때 30분 투자가 가장 가성비 좋은 작업.

    함께 읽으면 좋은 글

  • [성능 최적화 가이드](/guides/performance-optimization/) — JVM 튜닝 외 전반적 최적화
  • [PC 사양별 모드팩 선택 가이드](/info/pc-spec-modpack-guide/) — RAM·GPU 기준 모드팩 추천
  • [모드팩 시작 전 필수 QoL 모드 5선](/info/essential-qol-mods/) — 어디든 깔아야 하는 모드
  • 📦 관련 모드팩