进阶配置

这里需要一些技术能力. 如果您不清楚这些建议是干什么的, 请跳过.

连接池耗竭

不断看到连接池耗竭的错误信息?

这通常不是 Prism 导致的, 而是与数据库通信的速率不够快导致的. 有很多的办法可以解决这个问题. 如果您正在使用远程 MySQL 服务器, 通常会有些缓慢, 因为每次查询服务器都需要通过因特网来通信, 另外如果是共享 MySQL 托管, 通常性能不是很好.

一些建议:

  • 降低连接池等待时间 (pool wait times).

  • 增加连接池连接限制数 (pool connection limit), 如果您的远程 MySQL 提供者调整了合适的限制数的话.

  • 增加批次发送行为数 (actions per batch), 来让 MySQL 查询在大型变化发生时发送更多的数据, 代价是稍微提高内存占用.

进阶数据库配置

Prism 使用 Hikari 数据库连接池 - 请参阅 Hikari 来配置设定 - 可以在 Hikari.properties 内修改配置.

让事件记录更快

我们的事件数据记录速度默认值设置为适合中型服务器使用的设定. 如果您想让服务器运行得更好, 可以调整 Prism 配置来让事件记录更快.

  • actions-per-insert-batch - 决定每次批次插入发送多少个行为. 此功能的唯一限制就是运行内存 (RAM) 和您 MySQL 服务器的 max_allowed_packets 设置. 一般都可以将此数值增加到 5000, 或者更高. 每一次记录器运行的时候, 它会使用批次插入语句来清空队列, 并通过将其值从 1000 改为 5000, 来显著地提高清空队列的速度. 在默认设置下, 有着 11 万方块变化的世界需要 19 秒来保存, 但增加了这个值后只需要 5 秒.

  • queue-empty-tick-delay - 决定了记录器每一次检查队列的游戏刻(tick)间隔. (20 tick = 1 秒) 降低此数值会提高队列保存的速度. 例如, 在默认设置下的 3 tick, 每秒有约 6 个队列清空操作.

当记录器检查队列时, 它会批次清空整个队列. 不管是通过什么方式, 这些设定只是通过让它更频繁地检查新的事件行为来加快事件记录.