콘텐츠로 이동

공통 최적화 인자

Windows에서 large page를 쓰려면 반드시 관리자 권한으로 실행해야 한다.

손대기 전에 먼저 시스템이 이 기능을 이미 지원하는지 확인해 보자. 콘솔에서 다음 명령어를 실행한다.

Terminal window
java -Xlog:gc+init -XX:+UseLargePages -Xmx1g -version

다음 문구가 나온다면 완전히 호환되지 않는다는 뜻이다.

UseLargePages disabled, no large pages configured and available on the system.

즉 현재 시스템이 large page를 지원하지 않는다. 하지만 서두르지 말고 다음 명령어를 시도해 보자.

Terminal window
java -Xlog:gc+init -XX:+UseTransparentHugePages -Xmx1g -version

Large Page Support: Enabled (Transparent)가 보인다면 시스템이 transparent huge page를 지원하는 것이다.

여전히 지원하지 않거나 극한의 성능을 원한다면 커널 최적화를 참고하자.

LargePages를 지원한다면 다음 인자를 추가한다.

-XX:+UseLargePages -XX:LargePageSizeInBytes=2m

TransparentHugePages를 지원한다면 다음 인자를 추가한다.

-XX:+UseTransparentHugePages

글자 깨짐을 막는다.

-Dfile.encoding=UTF-8

그래도 글자가 깨진다면 다음을 실행해 보자.

Terminal window
chcp 65001 # for Windows

(Leaf 또는 Gale 전용)

-Dgale.log.warning.root=false -Dgale.log.warning.offline.mode=false

(Linux와 macOS 전용, Windows에서는 효과 없음) (바닐라 Minecraft는 프로필 공개 키 서명에서만 SecureRandom을 쓴다)

-Djava.security.egd=file:/dev/urandom

(Java 17 이상 전용)

-Xlog:async

Java 통합 로깅(Unified Logging)이 출력하는 JVM 디버그 정보를 비동기로 출력한다.

-Xlog:gc 같은 flag로 JVM 디버그 정보 출력을 켰을 때만 효과가 있다.

(Paper와 Paper 포크 전용)

-Dpaper.playerconnection.keepalive=60

네트워크가 좋지 않다면 keepalive 시간을 적당히 늘리고, alternate-keepalive를 켜자.

폴더 탐색과 심볼릭 링크 검증 끄기

섹션 제목: “폴더 탐색과 심볼릭 링크 검증 끄기”

(Paper와 Paper 포크 전용)

-Dpaper.disableWorldSymlinkValidation=true

월드를 로드할 때 폴더 탐색과 심볼릭 링크 검증을 끈다. 큰 월드의 로딩 속도가 눈에 띄게 빨라진다.