
继上一篇《开服指南》【服务端】全站最详细、最全面的开服教程!利用MCDR架设服务器,并且拥有你的皮肤站!发布后,笔者就想趁热打铁发布优化指南,结果材料都收集好了,电脑坏了!(悲)今天刚给电脑修好,就赶快写了这篇文章。
TPS 是衡量服务器运行流畅度最核心的指标,20.0为优秀。
| TPS 值 | 评级 | 玩家体感 |
|--------|------|----------|
| 20 | 完美 | 无任何卡顿 |
| 19.95 – 19.99 | 很好 | 几乎无法感知 |
| 18.5 – 19.94 | 一般 | 偶尔轻微卡顿 |
| 16.0 – 18.4 | 差 | 明显卡顿,需着手优化 |
| < 16.0 | 无法游玩 | 急需全面优化 | | Ping 值 | 评级 | 建议 |
|----------|------|------|
| 1 – 90ms | 极好 | 理想状态 |
| 91 – 179ms | 好 | 可接受 |
| 180 – 299ms | 差 | 建议排查网络 |
| 300 – 499ms | 很差 | 需更换节点或线路 |
| 500ms+ | 不可用 | 换更近的服务器 | 不要和MSPT、TPS搞混了!
MSPT(Milliseconds Per Tick)就是说,服务器处理每一个游戏刻要花费的平均时间,单位是毫秒。注意的是tick和FPS(客户端帧率,可以理解为自己电脑的帧数)是两个不同的概念,不要搞混了,一般服务器一秒钟可以处理20次tick,也就是说MSPT值为50。
TPS(Ticks Per Second)指的是片每秒,顾名思义,指的就是服务器每秒能够处理的片数量,上面说的
一般服务器一秒钟可以处理20次tick
就是等同于说TPS值等于20
优化铁律:先监控、再优化。在没有Spark数据的情况下盲目改参数,往往适得其反。
| 工具 / 命令 | 用途 | 来源 |
|-------------|------|------|
| `/mspt`(Paper 内置) | 查看最近 Tick 耗时;前两个值 <50ms 为正常,第三个值 >50ms 说明存在 Tick 超时 |
| `/timings paste` | 生成性能报告链接,可分享排查卡顿原因 |
|Spark插件 | 深度分析 CPU 和内存使用情况,定位性能瓶颈 | 你也可以用其他各类服务端,但是其他服务端的性能笔者未知,所以插件完善度也无从得知(原版无法加插件)
Vanilla(原版) → Bukkit → Spigot → Paper配置文件存在覆盖关系,高层级可覆写低层级 java -Xms2G -Xmx2G -jar paper.jar 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 paper.jar 当服务器物理内存超过 12GB 时,在上述参数基础上修改以下值:
-XX:G1NewSizePercent=40
-XX:G1MaxNewSizePercent=50
-XX:G1HeapRegionSize=16M
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=20 | 参数 | 作用 | 重要性 |
|------|------|--------|
| `-Xms` = `-Xmx` | 初始堆 = 最大堆,避免动态扩容浪费,G1GC 效率更高 | 必设 |
| `G1NewSizePercent=30` | 新生代占堆 30%,适配 MC 高对象分配率 | 重要 |
| `MaxGCPauseMillis=200` | GC 暂停目标 200ms(约 4 个 Tick) | 重要 |
| `MaxTenuringThreshold=1` | 减少对象晋升老年代,降低 Major GC 频率 | 重要 |
| `G1HeapRegionSize=8M` | 避免大量内存被视为 "Humongous" 巨型对象 | 推荐 |
| `DisableExplicitGC` | 禁止插件调用 `System.gc()`,防止延迟峰值 | 推荐 |
| `AlwaysPreTouch` | 启动时预分配并触零所有内存页 | 推荐 |
| `ParallelRefProcEnabled` | 多线程并行处理弱引用、软引用 | 推荐 | 详细了解可以去Paper官网:https://docs.papermc.io/paper/aikars-flags/
永远不要用完物理内存! 必须为操作系统预留1.5–2GB
⚠️视距低于 7 时,请同步调整 spigot.yml 中 mob-spawn-range,使其比视距小 1。
模拟距离决定服务器"实际计算"的范围,比 view-distance 对性能影响更大。建议设为 4 起步。
| 生物类型 | 默认值 | 推荐一 | 推荐二 | 性能影响 |
|----------|--------|-----------|-----------|----------|
| monsters(怪物) | 70 | 50 | 20 | 重 |
| animals(动物) | 10 | 8 | 5 | 中 |
| water-animals(水生动物) | 15 | 7 | 2 | 中 |
| water-ambient(水生环境) | 20 | 10 | 2 | 中 |
| ambient(蝙蝠等) | 15 | 1 | 1 | 轻 | 简单生存服→选一
小游戏服/生电服务→选二
配合Paper的per-player-mob-spawns: true使用效果最佳
更频繁地卸载空区块,减少无用区块占用的 TPS。
| 项目 | 值 |
|------|-----|
| 默认值 | 600 |
| 推荐值 | 400 |
| 性能影响 | 中等 | 数值越大,生物生成越慢,服务器负担越小。
| 类型 | 默认值 | 推荐值 | 说明 |
|------|--------|--------|------|
| monster | 1 | 5 | 怪物生成间隔增大 5 倍 |
| water | 1 | 11 | 水生生物生成大幅减慢 |
| water-ambient | 1 | 21 | 环境水生生物几乎不影响游戏 |
| ambient | 1 | 31 | 蝙蝠等背景生物最慢 | 推荐值:6000(保持默认即可,但务必确认不为 0)
减少持续写入操作,直接节省 TPS。
| 项目 | 值 |
|------|-----|
| 默认值 | `false` |
| 推荐值 | `true` |
| 性能影响 | 中等 | 设为 1000 相当于禁用此硬限制。避免因瞬时卡顿被系统误判而强制崩溃。
| 类型 | 默认值 | 推荐值 | 说明 |
|------|--------|--------|------|
| tile | 50 | 1000 | 方块实体 |
| entity | 50 | 1000 | 实体 | 默认值:8(块)
推荐值:6
⚠️ 当 view-distance≤6 时,生成范围应比视距小 1
默认值:true
推荐值:false
说明:防止激活范围外的村民继续被 Tick,对大型村民交易厅效果显著。
默认值:false
推荐值:true
说明:刷怪笼生成的生物没有 AI(不移动、不攻击、不游泳),对于大型刷怪塔 TPS 节省极为显著。
默认值:6000(5 分钟)
推荐值:视情况降低
建议:配合 Paper 的 alt-item-despawn-rate 对垃圾方块单独设置更短的消失时间。
默认值:1200
推荐值:300
为什么必须预生成?
玩家探索新区域时,服务器需要实时生成地形,这是最消耗 CPU 的操作之一。预生成可以在开服前完成所有区块的计算,之后玩家探索就是纯粹的读取而非计算。
安装Chunky插件
设置世界边界半径
执行预生成命令(可能需要数小时,取决于半径大小)
没有万能方案 — 每个服务器的玩法、人数、硬件都不同,需实测调整
先监控,后优化 — 装Spark、看/mspt,数据驱动而非拍脑袋
配置文件>插件补丁 — 大量问题仅靠调配置就能解决
平衡性能与体验 — 过度优化会让服务器变"空",适得其反
核心升级 — 从 Vanilla → Paper,性能提升立竿见影
预生成 — 配置调好 + 地图预生成=丝滑体验