Game/Minecraft

마인크래프트 서버 최적화 가이드

소개

SpigotMC의 Celebrimbor가 작성한 글을 참고하여 작성함.


SERVER.PROPERTIES

view-distance

기본 값: 10
권장 값: 3
중요도: 매우 높음

  • 플레이어의 시야 범위를 조절하는 설정. 높을수록 청크가 더 많이 로드되고 서버에 부하가 심해짐. 권장 값으로 설정 시 spigot.yml의 mob-spawn-range 값을 변경해야 함.

BUKKIT.YML

spawn-limits

기본 값: monsters: 70, animals: 10, water-animals: 15, water-ambient: 20, ambient: 15
권장 값: monsters: 15, animals: 7, water-animals: 2, water-ambient: 2, ambient: 0~1
중요도: 높음

  • 권장 값이 낮을수록 몬스터가 줄어듦. water-animals는 오징어, 돌고래이며 water-ambient는 물고기 ambient는 박쥐에 해당. 박쥐가 필요 없으면 ambient 값을 0으로 줘도 괜찮음.

chunk-gc.period-in-ticks

기본 값: 600
권장 값: 400
중요도: 중간

  • 청크의 가비지 컬렉션 속도를 설정. 권장 값으로 설정 시 청크가 더 빨리 언로드 됨.

ticks-per.monster-spawns

기본 값: 1
권장 값: 10
중요도: 중간

  • 서버의 몬스터 생성 틱을 설정

SPIGOT.YML

mob-spawn-range

기본 값: 8
권장 값: 2
중요도: 높음

  • 플레이어 주위의 몹 스폰 거리를 설정. view-distance의 값보다 최소 1은 낮아야 함. 그렇지 않으면 몬스터 스폰이 이상하게 될 수 있음.

entity-activation-range

기본 값: animals: 32, monsters: 32, raiders: 48, misc: 16, water: 16, villagers: 32, flying-monsters: 32
권장 값: animals: 6, monsters: 16, raiders: 32, misc: 4, water: 8, villagers: 16, flying-monsters: 36
중요도: 높음

  • 설정 범위 밖에 있는 엔티티는 덜 Ticking 됨

tick-inactive-villagers

기본 값: true
권장 값: false
중요도: 낮음

  • 활성화 범위를 벗어난 주민들은 Ticking 하지 않음. 주민의 번식 및 직업 부여에 영향을 줄 수 있음.

wake-up-inactive

기본 값: animals-max-per-tick: 4, animals-for: 100, monsters-max-per-tick: 8, monsters-for: 100, villagers-max-per-tick: 4, villagers-for: 100
권장 값: animals-max-per-tick: 2, animals-for: 40, monsters-max-per-tick: 4, monsters-for: 60, villagers-max-per-tick: 1, villagers-for: 20
중요도: 중간

  • 엔티티를 깨우는 주기를 설정함. EAR2.0을 비활성화하려면 max-per-tick을 0으로 변경함.

자세한 정보

max-entity-collisions

기본 값: 8
권장 값: 2
중요도: 높음

merge-radius

기본 값: item: 2.5, exp: 3
권장 값: item: 4, exp: 8
중요도: 중간

  • 아이템과 경험치를 합치는 범위를 설정함. 바닥에 아이템과 경험치가 많을 경우 렉이 걸릴 수 있음. 아이템이 합쳐져 사라지는 것처럼 보일 수 있음.

nerf-spawner-mobs

기본 값: false
권장 값: true
중요도: 중간

  • 스포너에서 스폰되는 몬스터들의 AI를 없앰

enable-zombie-pigmen-portal-spawns

기본 값: true
권장 값: false
중요도: 중간

  • 포탈에서 좀비 피그맨 생성을 설정. 네더 포탈 좀비 피그맨 팜이 작동하지 않음.

arrow-despawn-rate

기본 값: 1200
권장 값: 1~300
중요도: 낮음

  • 발사된 화살의 디스폰 속도를 설정. 땅에 화살이 오래 박혀있을 필요가 없음.

PAPER.YML

optimize-explosions

기본 값: false
권장 값: true
중요도: 중간

  • 폭발 최적화

disable-chest-cat-detection

기본 값: false
권장 값: true
중요도: 낮음

  • 상자가 고양이를 스캔하지 않음

container-update-tick-rate

기본 값: 1
권장 값: 2
중요도: 낮음

  • 인벤토리 새로고침 주기를 설정. 4 이상 하면 안됨

max-entity-collisions

기본 값: 8
권장 값: 2
중요도: 높음

  • 최대 엔티티 충돌 수를 변경. 엔티티의 충돌이 많을수록 TPS가 줄어듦.

grass-spread-tick-rate

기본 값: 1
권장 값: 3
중요도: 중간

  • 잔디가 퍼지는 틱을 설정

despawn-ranges

기본 값: soft: 32, hard: 128
권장 값: soft: 32, hard: 64
중요도: 중간

  • 범위를 벗어난 몬스터들은 디스폰 됨. soft는 주기적으로 디스폰 되는 범위이며 hard는 즉시 디스폰되는 범위임.

hopper.disable-move-event

기본 값: false
권장 값: true
중요도: 높음

  • 호퍼의 InventoryMoveItemEvent를 비활성화하여 호퍼의 성능을 향상. 하지만 높은 확률로 각종 보호 플러그인이 제대로 작동하지 않을 수 있음, 무조건 확인하길 바람.

non-player-arrow-despawn-rate

기본 값: -1
권장 값: 1
중요도: 낮음

  • 플레이어가 아닌 엔티티가 발사한 화살의 디스폰 속도를 변경. 줍지도 못하는거 오래 박아둘 필요 없음.

creative-arrow-despawn-rate

기본 값: -1
권장 값: 1
중요도: 낮음

  • 크리에이티브 모드에서 사용된 화살 디스폰 속도를 변경. 서바이벌 서버면 오래 둘 필요 없음.

prevent-moving-into-unloaded-chunks

기본 값: false
권장 값: true
중요도: 높음

  • 플레이어가 언로드 된 청크로 이동하는 것을 방지. 월드를 미리 만들어놓지 않은 서버의 경우 효과적임.

use-faster-eigencraft-redstone

기본 값: false
권장 값: true
중요도: 높음

  • 레드스톤 알고리즘을 바닐라보다 더욱 효과적인 알고리즘으로 변경.

자세한 정보

armor-stands-tick

기본 값: true
권장 값: false
중요도: 낮음

  • 갑옷 거치대를 굳이 tick 할 필요가 없음. 단 갑옷 거치대를 이용하는 차량 플러그인 사용 시 권장 값으로 설정하면 차량이 움직이지 않음.

per-player-mob-spawns

기본 값: false
권장 값: true
중요도: 높음

  • 몹 스폰 제한을 플레이어 별로 변경. 몹팜의 효율이 올라가며 바닐라와 비슷하게 작동. 하지만 몬스터 스폰량이 많아짐

alt-item-despawn-rate

기본 값: false
권장 값: true
중요도: 낮음

  • 특정 아이템의 디스폰 속도를 조절. spigot.yml의 item-despawn-rate보다 빠르거나 느리게 조절 가능.
      enabled: true
      items:
        COBBLESTONE: 300
        SAND: 300

상단의 예시는 조약돌, 모래가 15초 뒤에 디스폰 되는 설정임.

viewdistances.no-tick-view-distance

기본 값: -1

권장 값: 8~12

중요도: 높음

  • ticking하지 않는 청크 범위를 설정. 권장 값인 8로 설정 시 view-distance에서 설정한 3 청크만 ticking 되고 나머지 5 청크는 ticking 하지 않음. 플레이어에게 넓은 시야 범위를 보여주면서 서버의 부담을 줄일 수 있음.

anti-xray.enabled

기본 값: false
권장 값: true

  • anti-xray를 활성화하면 서버의 성능에 영향을 주지만 플레이어의 xray를 막기 좋음. engine-mode 2 사용을 권장.

Paper 서버 Anti-Xray 권장 설정 값


FLAGS

paper 개발자인 aikar가 제공하는 최적화된 flags

https://mcflags.emc.gs/


마치며

문제 생겨도 난 모름

서버에 맞게 알아서 수정해서 쓰는걸 추천함