服务器地图大小限制


运营一个 PaperMC 服务器时,地图会随玩家跑图持续增长,磁盘占用也会直接影响备份成本。本文先解释存储模型,再给出理论极值和实际估算方法,最后介绍备份和清理策略。

1. 地图存储模型🔗

Minecraft 地图按区块存储。一个区块是 16x16 方块的水平区域,存档文件按维度分布在 region/ 目录中。高度影响单个区块文件的大小,但不会增加区块数量。

Paper 26.1+ 使用与 Vanilla 一致的单目录嵌套结构:

world/
└── dimensions/minecraft/
    ├── overworld/region/
    ├── the_nether/region/
    └── the_end/region/

实际占用主要看 region/ 中的 .mca 文件,entities/poi/ 也会随玩家长时间运行增长。

2. 先算理论极值🔗

server.properties 中的 max-world-size 控制世界边界半径,默认值:

max-world-size=29999984 # 单位为方块,表示世界半径

如果整个边界内全部生成,区块数量按面积计算:

区块数 = (max-world-size / 8) ^ 2

因为直径 2 * max-world-size 除以区块边长 16 就是每边区块数,所以边长除以 8 后平方即可。默认值下的理论极值:

(29999984 / 8) ^ 2 = 14,062,485,000,004 个区块

按每个满区块 4MB 的保守上限估算,理论总占用约为 53,644,124 TB。这个数字不是实际需求,而是说明“默认世界边界不设限时,理论上可生成的空间远超过任何单机磁盘”。

实际区块平均大小远低于 4MB,所以理论极值只能用于理解上限,不能用于规划容量。规划时应以实际磁盘占用为准。

3. 用实际占用做决策🔗

测量当前地图🔗

du -sh world/dimensions/minecraft/*/region
find world/dimensions/minecraft/overworld/region -name '*.mca' | wc -l

du 查看各维度实际大小,用 find | wc -l 查看区块文件数量。下一步把“理论极限”换成“当前占用 / 可接受备份体积”来决策:

可用地图空间 = 磁盘容量 - 系统/程序/备份预留
可增长区块数 = 可用地图空间 / 平均区块大小

设置世界边界🔗

限制未来增长比事后清理更稳妥。给玩家预留公告后逐步缩小边界:

/worldborder center 0 0
/worldborder set 8000

worldborder set 缩小边界时,边界外玩家会被推出地图,生产服应分几步缩小并提前公告。

4. 备份与清理策略🔗

备份时不应直接复制整个 world/ 下所有已生成区块。可以使用 mcaselector 按“玩家真实待过”的条件导出或删除区块,显著减小备份体积。

mcaselector 下载地址 · CLI 模式文档

导出精简备份🔗

# 仅导出玩家待了5分钟以上的方块
java -jar                           \
    mcaselector-2.5.3.jar           \
    --mode export                   \
    --query "InhabitedTime > 5min"  \
    --world <directory_of_world>    \
    --output-world <directory_for_backup>

export 会生成一个新世界,不会修改原世界,适合作为定期精简备份。

清理原始地图🔗

# 在原始地图上直接操作,删除所有玩家没待满5分钟以上的方块
java -jar                           \
    mcaselector-2.5.3.jar           \
    --mode delete                   \
    --query "InhabitedTime <= 5min" \
    --world <directory_of_world>

delete 会直接修改原世界,风险较高。生产环境必须先在副本上测试,并保留至少一份完整备份。

托管平台的自动清理功能只能作为辅助,不应代替自己的备份和恢复演练。

CLI 命令参数速查图:

mcaselector cheatsheet

小结🔗

  • 区块数量由世界面积决定,max-world-size 是半径而不是边长。
  • 理论极值主要用于理解上限,容量规划必须结合 du 实际测量。
  • 控制世界边界 + 按 InhabitedTime 精简备份,是长期可维护的组合方案。