Joker@Minecraft 🇨🇳
  • 主页
  • 客户端
  • 玩家手册
  • 自研插件
  • 捐赠
主页 › ❤️‍🔥 我的世界 › 文章 › 服务器地图大小限制

目录

  • 地图文件夹的目录结构
    • Vanilla 服务端的地图目录结构
    • PaperMC服务端的地图目录结构
  • 如何计算服务器地图占用磁盘的大小
  • 地图备份文件占用磁盘太大解决方案
目录

目录

  • 地图文件夹的目录结构
    • Vanilla 服务端的地图目录结构
    • PaperMC服务端的地图目录结构
  • 如何计算服务器地图占用磁盘的大小
  • 地图备份文件占用磁盘太大解决方案

服务器地图大小限制


地图文件夹的目录结构🔗

Vanilla 服务端的地图目录结构🔗

一个典型的Java版世界存档文件夹内通常包含以下重要内容:

  • level.dat: 这个文件存储了该世界的全局核心信息,如世界名称、种子、游戏时间、天气周期等。
  • region/: 这个文件夹储存了主世界的区块数据(.mca文件),每个文件包含32x32个区块。
  • DIM-1/: 这是下界(地狱) 维度的数据文件夹,其内部也包含相应的 region 等文件夹。
  • DIM1/: 这是末地维度的数据文件夹。
  • playerdata/: 存储玩家的数据信息,例如血量、经验值、物品栏等。
  • data/: 存储一些其他世界数据,如村民信息、地图数据等。
  • advancements/: 存储玩家的成就进度数据。
  • stats/: 存储玩家在此世界的统计信息。
  • poi/: (1.14+)存储世界内与村民工作站及探索点相关的数据。

PaperMC服务端的地图目录结构🔗

# 主世界
world
├── advancements
├── data
├── datapacks
├── entities
├── generated
├── playerdata
├── poi
├── region
└── stats

# 下界
world_nether
├── data
└── DIM-1

# 终末之地
world_the_end
├── data
└── DIM1

如何计算服务器地图占用磁盘的大小🔗

默认情况下,minecraft 服务器配置文件server.properties中指定:

max-world-size=29999984 # 单位为方块,表示地图的最大半径
max-build-height=256    # 单位为方块,表示地图的最大高度

Minecraft地图是正方形的,是按 区块(block) 为单位进行存储的,一个区块的默认尺寸为: 16x16x256(长x宽x高)。也就是说一个区块存放:65536 个方块。按照默认设置,地图总共会有:

((2 * max-world-size) ^ 2) * max-build-height = 921599016960262144

个方块,也就是 14062485000004 个区块。

按照一个高度为256的区块在磁盘中的存储大小约为:4M 来计算,共需要磁盘空间约为:53644124 GB

所以,要开一个可维护的Minecraft服务器,需要控制好磁盘使用。就必须有一个磁盘容量上限。按目前云服务器一般配备50GB磁盘空间来算,除去10GB系统占用,可供开服存储地图的磁盘空间仅有40GB, 按地图默认高度max-build-height=256计算,地图的最大半径值为:max-world-size=810 这是假设玩家会经过所有方块的场景的理想情况。显然这种计算是不符合实际情况的。假设一个方块地图玩家只会经过其中的10%,那么max-world-size=2561。这显然,也不能反映实际情况。所以需要统计一下,区块使用率,用来指导设置世界大小


地图备份文件占用磁盘太大解决方案🔗

目前服务器托管平台,提供自动优化地图大小的能力。地图中玩家没有呆过的区块会被不定时的清理掉,保证地图文件的大小可控。 如果你的地图文件太大,可以使用工具 mcaselector 进行区域按条件筛选后, 进行删除,可以显著减小地图文件占用空间。

mcaselector 下载地址

可以使用CLI命令行模式进行操作,参考文档: mcaselector CLI 模式

备份地图的命令:

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

CLI命令使用参数速查图:

mcaselector cheatsheet

← Minecraft 基岩版服务端 相关资源链接 →
© Joker@Minecraft 🇨🇳 2025