Semeru
Semeru는 IBM이 제공하는 JDK 배포판으로, HotSpot JVM이 아니라 OpenJ9 JVM을 쓴다.
OpenJ9는 Java 가상 머신 규격을 따르면서 독자적으로 구현하고 새로 설계한 JVM이다. HotSpot JVM의 G1GC, ZGC와는 다른 독자적인 메모리 관리 방식과 가비지 컬렉션 전략을 갖고 있다.
Paper 호환성 수정
섹션 제목: “Paper 호환성 수정”Paper와 그 포크에서 Semeru를 쓰려면 내장 Spark를 꺼야 한다.
방법 1: 내장 Spark 끄기 (추천)
섹션 제목: “방법 1: 내장 Spark 끄기 (추천)”config/paper-global.yml에서 다음과 같이 설정한다.
spark: enabled: false방법 2: 플러그인 버전 Spark 사용
섹션 제목: “방법 2: 플러그인 버전 Spark 사용”JVM 시작 인자를 추가한다.
-Dpaper.preferSparkPlugin=true서버 코어가 내장 버전 대신 Spark 플러그인을 우선 쓰게 한다.
기본 인자
섹션 제목: “기본 인자”-XX:+IdleTuningGcOnIdle -XX:+UseAggressiveHeapShrink -XX:-OmitStackTraceInFastThrow -XX:+UseFastAccessorMethods -XX:+OptimizeStringConcat -Xshareclasses:allowClasspaths -Xshareclasses:cacheDir=./cache -Xaot -XX:+UseCompressedOops -XX:ObjectAlignmentInBytes=256 -Xshareclasses -XX:SharedCacheHardLimit=800M -Xtune:virtualized -XX:+TieredCompilation -XX:InitialTenuringThreshold=5 -Dlog4j2.formatMsgNoLookups=true -XX:-DisableExplicitGC가비지 컬렉션 정책
섹션 제목: “가비지 컬렉션 정책”OpenJ9는 HotSpot의 -XX:+UseG1GC나 -XX:+UseZGC 대신 -Xgcpolicy 인자로 가비지 컬렉션 정책을 지정한다.
추천 정책: gencon (기본값)
섹션 제목: “추천 정책: gencon (기본값)”대부분의 Minecraft 서버 상황에 맞는다. 특히 수명이 짧은 객체가 많은 트랜잭션성 애플리케이션에 적합하다.
-Xgcpolicy:gencon그 밖의 정책
balanced 정책
섹션 제목: “balanced 정책”큰 힙(64비트 전용)에 적합하다. 멈춤 시간을 고르게 하고 단편화를 줄인다.
-Xgcpolicy:balancedoptavgpause 정책
섹션 제목: “optavgpause 정책”평균 멈춤 시간을 최적화한다. 지연에 민감한 애플리케이션에 적합하다.
-Xgcpolicy:optavgpauseoptthruput 정책
섹션 제목: “optthruput 정책”처리량을 최적화한다. 긴 GC 멈춤을 견딜 수 있는 애플리케이션에 적합하다.
-Xgcpolicy:optthruputmetronome 정책
섹션 제목: “metronome 정책”예측 가능한 짧은 멈춤 시간을 제공한다(Linux x86-64와 AIX 전용).
-Xgcpolicy:metronome