Minecraft 服务器优化指南
基于社区最佳实践,助您榨干服务器的每一滴性能。告别 TPS 下降,拥抱丝滑体验。
简介
最佳实践与避坑
务必备份
拒绝过时软件
核心选择:Paper 或 Purpur
硬件选择
警惕“优化插件”
- 扫地大妈/清理掉落物插件: 通常是多余的。使用服务器自带的
merge-radius和alt-item-despawn-rate配置更高效。 - 生物堆叠插件: 弊大于利。堆叠生物会导致服务器尝试生成更多生物,反而增加负担。仅建议在刷怪笼密集的服务器使用。
- 插件热重载 (PlugMan 等): 极度危险!在运行时加载/卸载插件可能导致内存泄漏或数据损坏。请始终通过重启服务器来应用更改。
网络设置 (Networking)
network-compression-threshold
256
设置数据包压缩的阈值。设为 256 可以平衡 CPU 使用率和带宽。如果您的服务器在内网或使用了 BungeeCord/Velocity 代理,可以尝试设为 -1(禁用压缩)以节省 CPU。
use-alternate-keepalive
true
启用 Purpur 的替代心跳机制,可以防止网络状况不佳的玩家被误判超时踢出。
区块设置 (Chunks)
simulation-distance
4
模拟距离:决定了玩家周围多少区块内的红石、生物AI、植物生长会运作。建议设为 3 或 4。这允许您在不增加服务器计算负担的情况下,通过提高 view-distance 来让玩家看更远。
view-distance
7
视距:决定了发送给玩家的区块距离。如果模拟距离设为 4,视距设为 10,玩家能看到 10 格远,但只有 4 格内的作物会生长。这能显著提升性能。
delay-chunk-unloads-by
10s
延迟区块卸载。防止玩家在区块边界反复移动导致区块频繁加载/卸载,从而造成卡顿。
prevent-moving-into-unloaded-chunks
true
防止玩家进入未加载的区块,避免因同步加载区块导致的主线程卡顿。
生物设置 (Mobs)
spawn-limits
monsters: 20 animals...
monsters: 20 animals: 5 water-animals: 2 water-ambient: 2 ambient: 1
限制每位玩家周围的生物数量。配合 Paper 的 per-player-mob-spawns: true 使用效果最佳。
entity-activation-range
animals: 16 monsters...
animals: 16 monsters: 24 raiders: 48 misc: 8 water: 8 villagers: 16 flying-monsters: 48
实体激活范围。超出此范围的生物将停止思考(AI),大幅降低 CPU 占用。
nerf-spawner-mobs
true
削弱刷怪笼生成的生物。这些生物将没有 AI(不会攻击、移动),对于刷怪塔来说非常完美,能极大节省性能。
despawn-ranges
soft: 30 hard: 72
soft: 30 hard: 72
生物消失范围。soft 为软上限(随机消失),hard 为硬上限(强制消失)。Hard 值应略大于您的模拟距离。
杂项优化 (Misc)
merge-radius
item: 3.5 exp: 4.0
item: 3.5 exp: 4.0
掉落物合并半径。增加此值可让更多掉落物堆叠在一起,减少实体数量。
alt-item-despawn-rate
enabled: true items:...
enabled: true items: cobblestone: 300 netherrack: 300 sand: 300 ...
自定义特定物品(如圆石、地狱岩等垃圾方块)的消失时间(tick)。300 ticks = 15秒。比扫地插件更高效。
redstone-implementation
ALTERNATE_CURRENT
使用 Alternate Current 红石算法。比原版红石算法快数百倍,且极大减少了不必要的方块更新。
optimize-explosions
true
优化爆炸算法。在计算 TNT 爆炸时牺牲微不足道的精度来换取巨大的性能提升。
Java 启动参数
对于 Minecraft 1.20.5+,您需要 Java 21。推荐使用 Adoptium (Eclipse Temurin) 或 Amazon Corretto。
垃圾回收 (GC) 参数对减少卡顿至关重要。请不要手动拼凑参数,强烈建议使用 flags.sh 生成器。
Aikar's Flags (通用推荐)
适用于大多数服务器 (8GB+ 内存推荐使用 G1GC)
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
性能分析工具
MSPT 命令
Paper 自带命令 /mspt。如果数值低于 50ms,说明服务器流畅。如果高于 50ms,说明存在卡顿。
客户端画质模拟器
不同电脑配置能开到什么效果?
选择你的硬件档位与玩法偏好,生成一个“能跑得动且看起来舒服”的客户端画质预设(偏向 Java 版)。