效能優化
提升伺服器 TPS,減少延遲,打造流暢的遊戲體驗
為什麼需要效能優化?
當伺服器的 TPS(Ticks Per Second)低於 20 時,玩家會感受到明顯的延遲。透過正確的設定,可以在不犧牲太多遊戲體驗的情況下大幅提升效能!
TPS(Ticks Per Second)代表伺服器每秒處理的遊戲刻數:
| TPS | 狀態 | 玩家感受 |
|---|
| 20 | ✅ 完美 | 流暢無延遲 |
| 18-19 | ⚠️ 輕微掉幀 | 幾乎無感 |
| 15-17 | ⚠️ 中等延遲 | 輕微卡頓 |
| 10-14 | ❌ 嚴重延遲 | 明顯延遲 |
| <10 | ❌ 極度延遲 | 幾乎無法遊玩 |
/tps (Paper/Spigot)
/spark tps (使用 Spark 插件)
效能消耗排名(通常情況):
1. 🏷️ 實體(Entity) ████████████████████ 40%
- 怪物、動物、掉落物、船、礦車等
2. 🧩 紅石 / 漏斗 ██████████████ 28%
- 紅石機器、大量漏斗
3. 🌍 區塊載入 ████████████ 24%
- 玩家移動時載入新區塊
4. 🔌 插件 ████ 8%
- 效能差的插件
Spark 是最好用的效能分析插件,可以找出導致延遲的原因。
下載 Spark 並放入 plugins 資料夾。
Spark 會生成一個網址,開啟後可以看到:
- 什麼東西佔用最多 CPU
- 哪些插件效能最差
- 實體數量統計

Paper 提供許多效能優化選項,位於 config/paper-world-defaults.yml。
entities:
spawning:
# 減少怪物生成數量(預設為 70)
monster-spawn-limit: 50
# 減少動物生成數量(預設為 10)
creature-spawn-limit: 8
# 減少水生生物
water-animal-spawn-limit: 3
water-ambient-spawn-limit: 10
# 減少環境生物(蝙蝠等)
ambient-spawn-limit: 1
behavior:
# 停用不必要的 AI(可能影響遊戲體驗)
disable-chest-cat-detection: true
# 村民優化
tick-inactive-villagers: false
tracking-range-y:
enabled: true
chunks:
# 減少實體啟用範圍(預設 32)
entity-per-chunk-save-limit:
experience_orb: 16
arrow: 8
ender_pearl: 8
# 自動儲存間隔(tick)
auto-save-interval: 6000
hopper:
# 禁用漏斗移動事件(大幅提升效能)
disable-move-event: true
# 漏斗檢測間隔(tick)
cooldown-when-full: true
注意
disable-move-event: true 可能會導致部分保護插件的漏斗保護失效。
編輯 spigot.yml:
world-settings:
default:
# 怪物合併範圍(合併後只計算一個實體)
merge-radius:
exp: 6.0 # 經驗球
item: 4.0 # 掉落物
# 怪物生成範圍(較低 = 較少怪物)
mob-spawn-range: 6
# 實體啟用範圍(方塊)
entity-activation-range:
animals: 16 # 動物
monsters: 24 # 怪物
raiders: 48 # 掠奪者
misc: 8 # 其他
water: 8 # 水生
villagers: 16 # 村民
flying-monsters: 32 # 飛行怪物
# 村民工作站檢測間隔
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
# 每 tick 最大生成數量
ticks-per:
animal-spawns: 400
monster-spawns: 1
autosave: 6000
編輯 bukkit.yml:
spawn-limits:
monsters: 50 # 預設 70
animals: 8 # 預設 10
water-animals: 3 # 預設 5
water-ambient: 10 # 預設 20
ambient: 1 # 預設 15
chunk-gc:
period-in-ticks: 600
ticks-per:
animal-spawns: 400
monster-spawns: 1
autosave: 6000
使用插件定期清理實體可以有效降低負載。
ClearLagg 可以定期清理掉落物和實體。
# plugins/ClearLagg/config.yml
auto-removal:
enabled: true
interval: 300 # 每 300 秒(5 分鐘)清理一次
broadcast:
enabled: true
message: "&c[系統] 將在 60 秒後清理掉落物..."
remove:
items: true # 清理掉落物
primed-tnt: true # 清理 TNT
falling-blocks: false
如果使用 CMI,可以使用內建的清理功能:
或設定自動清理排程。
視距(View Distance)對效能影響很大。
# server.properties
view-distance=8 # 預設 10,建議 6-8
# spigot.yml(可以分世界設定)
world-settings:
default:
view-distance: 8
world_nether:
view-distance: 6
world_the_end:
view-distance: 6
模擬距離控制區塊內實體的運算範圍:
# server.properties
simulation-distance=6 # 預設 10,建議 4-6
新區塊的生成非常消耗效能。預先生成世界可以避免這個問題。
Chunky 可以預生成區塊。
# 預生成半徑 5000 方塊
/chunky radius 5000
# 開始生成
/chunky start
# 暫停生成
/chunky pause
預生成過程中伺服器可能會卡頓,建議在沒有玩家時進行。
| 項目 | 狀態 | 影響程度 |
|---|
| ☐ 安裝 Spark 分析 | | ⭐⭐⭐⭐⭐ |
| ☐ 調整生怪數量限制 | | ⭐⭐⭐⭐⭐ |
| ☐ 設定實體啟用範圍 | | ⭐⭐⭐⭐ |
| ☐ 優化漏斗設定 | | ⭐⭐⭐⭐ |
| ☐ 調整視距 | | ⭐⭐⭐⭐ |
| ☐ 設定掉落物合併 | | ⭐⭐⭐ |
| ☐ 預生成世界 | | ⭐⭐⭐ |
| ☐ 定期清理實體 | | ⭐⭐⭐ |
平衡效能與體驗
效能優化可能會影響遊戲體驗(例如怪物變少、視距變短)。請根據實際情況找到適合您伺服器的平衡點。