콘텐츠로 이동

저장 공간 최적화

/plugins 폴더의 저장 공간을 최적화해야 하는지는 전체 용량만 봐도 쉽게 판단할 수 있다.

200 MB를 넘는다면 어떤 플러그인이 SQLite / YAML / zip 등으로 뭔가를 저장하고 있을 가능성이 크다.

서버에 플레이어가 어느 정도 있다면 이는 추천하는 저장 방식이 아니며, 경우에 따라 저장 공간을 꽤 차지할 수 있다.

데이터베이스를 잘 쓰면 서버 디스크 사용량을 줄일 수 있다. 자세한 내용은 공통 | 데이터베이스를 참고하자.

서버 전체 백업 대신 백업 플러그인 사용

섹션 제목: “서버 전체 백업 대신 백업 플러그인 사용”

백업 플러그인 두 개를 추천한다(효율적이고, 서버를 멈추지 않고 백업할 수 있다).

eBackup 블랙리스트로 특정 파일을 백업에서 제외할 수 있고, FTP 원격 백업을 지원한다.

Server Backup 증분 백업(최근 변경된 파일만 백업)을 지원해 용량을 덜 차지한다.

Minecraft의 기본 청크 포맷은 Anvil이다. 하지만 이 포맷은 쓸모없는 정보를 저장하고, 강제 정렬을 쓰는 등 단점이 많다.

게다가 아직도 오래된 zlib 압축을 쓰고 있어서, 디스크가 빠듯하다면 손봐 볼 만하다.

다만 이건 아주 저수준의 영역이라, 꼭 필요한 경우가 아니면 건드리지 않는 것을 추천한다.

Regionerator는 사용하지 않는 청크를 자동으로 삭제한다. 자동으로 동작하고 되돌릴 수 없다는 점에 주의하자.

Linear는 지원하지 않는다.

이 포맷은 유명한 Xymb가 개발했으며, Anvil에 비해 공간을 엄청나게 아낄 수 있다.

오버월드는 약 50%, 엔드는 약 90%의 공간을 아낄 수 있고, 최신 zstd & lz4 압축을 써서 로드와 저장 속도도 더 빠르다.

쓰기 전에 Anvil을 Linear 리전 포맷으로 변환해야 한다. Leaves를 쓴다면 서버 안에서 자동으로 변환할 수 있다.

변환 도구는 아주 간단해서 안내대로만 따라 하면 된다(백업은 꼭 해 두자).

현재 Linear 리전 포맷을 지원하는 서버 코어는 LinearPurpur, LinearPaper, Leaves, Leaf, Kaiiju(그리고 수많은 포크)뿐이다.

켜는 방법은 따로 설명하지 않는다. Wiki를 보면 된다.

현재 Linear 리전 포맷과 호환되지 않는 것으로 알려진 플러그인은 아주 적다. 백업 플러그인인 Server Backup은 mca 파일을 찾지 못해 오류를 낸다. 대부분의 온라인 웹 맵 뷰어, 그리고 Residence가 일부 호환되지 않는다(z 대신(大神)의 우아한 코드 덕분에, 로드되지 않은 청크에 있는 영역으로 텔레포트하면 크래시가 난다). Regionerator도 호환되지 않는다.

HaHaWTH가 제공한 테스트 결과다. Chunky로 반경 1000블록을 로드하고 저장했으며, 서버 코어는 Leaf다. 실제 결과는 다를 수 있다.

월드Anvil (바닐라 포맷)Linear (압축 레벨 1)Linear (압축 레벨 6, 기본값)Linear (압축 레벨 22, 최대)
오버월드192MB142MB117MB92MB
네더118MB70MB60MB46MB
엔드87MB1.72MB1.2MB914KB
저장 시간3m18s3m50s4m44s23m21s
메모리 사용량약 3GB3.1GB3.3GB3.4 ~ 18GB(매우 불안정)

Slime 월드 포맷을 참고하자.

  1. 심볼릭 링크 / 바로 가기로 여러 서버의 lib, Minecraft 본체 등을 공유한다(공간이 정말 부족한 게 아니면 하지 말자. 결과는 본인 책임이다).

  2. 정리 소프트웨어를 쓴다.

  3. 운영체제를 다시 설치하고 최소 설치를 한다(필요 없는 소프트웨어는 설치하지 않는다).

  4. 불필요한 Java가 있는지 확인한다(보통 서버 운영에는 Java 한 버전이면 된다).