Minecraftサーバーの負荷軽減についてです
PaperもしくはPaperをForkしたサーバー(Airplaneなど)を導入していることが前提の記事です
起動引数
aikarを使用してGCを最適化します
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=20 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar nogui
Xms Xmx -jarをあなたのサーバーにあったものに変えて使ってください
読み込みチャンク
読み込みチャンクを減らすことで大幅に負荷を軽減します 送信チャンク数は変わらないのでプレイにはあまり影響しません
読み込みチャンクを指定します デフォルトは10です
(server.properties)
view-distance=4
送信チャンク数を指定します デフォルトは-1(無効)です
viewdistances:
no-tick-view-distance: 10
スポーンチャンク
スポーンチャンクを変更します
keep-spawn-loadedをfalseにするとスポーンチャンクがなくなります
keep-spawn-loaded-rangeを変更することでスポーンチャンクの大きさを任意の値に変更することが出来ます デフォルトは10です
ディメンションが数十個あるサーバーにこの設定は非常に有用です
keep-spawn-loaded: false
keep-spawn-loaded-range: 0
Mobスポーン
同じワールドに複数人プレイヤーがいるとMobのスポーンが減ります
MinecraftではワールドごとにMobの上限が定められておりそれを超えるとMobがスポーンしなくなります
以下の設定にすることでMobの上限をワールドごとではなくプレイヤーごとにします
※なおこの機能にはバグがあります プレイヤーのすぐ近くにいきなりMobがスポーンする可能性があります#2614
per-player-mob-spawns: true
Mobのデスポーンを早くします
Minecraftでは32マス以上離れているランダムに選択されたmobと128マス以上の離れているmobはデスポーンします
遠くに居るmobは不要なので64マス以上離れたmobを強制的にデスポーンさせます
despawn-ranges:
soft: 32
hard: 64
爆発
爆発を最適化します
爆発の処理が大幅に早くなります
optimize-explosions: true
TNTが水に流されなくなります
prevent-tnt-from-moving-in-water: true
レッドストーン
レッドストーンの処理が大幅に向上しますが通常のMinecraftと違う挙動をする可能性があります
use-faster-eigencraft-redstone: true
Anti-Xray
地面透視チートの対策です 詳細
以下のは1.16向けの設定なのでバージョンによって鉱石を増やしたり減らしたりしてください
world-settings:
default:
anti-xray:
enabled: true
engine-mode: 2
chunk-edge-mode: 2
max-chunk-section-index: 7
update-radius: 2
lava-obscures: false
use-permission: false
hidden-blocks:
- air
- coal_ore
- diamond_ore
- emerald_ore
- gold_ore
- iron_ore
- lapis_ore
- mossy_cobblestone
- redstone_ore
- ancient_debris
- bone_block
- glowstone
- magma_block
- nether_bricks
- nether_gold_ore
- nether_quartz_ore
- polished_blackstone_bricks
replacement-blocks:
- andesite
- diorite
- dirt
- granite
- gravel
- oak_planks
- stone
- basalt
- blackstone
- gravel
- netherrack
- soul_sand
- soul_soil
おまけ
オウムが肩から落ちなくなります
スニークをすることで解除できます
parrots-are-unaffected-by-player-movement: true
猫がチェストの上に乗っていてもチェストが開けられるようになります
disable-chest-cat-detection: true
通常の2/3の速度で魚が釣れます デフォルトはMinimumTicksが100,MaximumTicksが600です
fishing-time-range:
MinimumTicks: 60
MaximumTicks: 400
ウィザーの敵対しないバグの修正 MC-29274
fix-wither-targeting-bug: true