游戏服务器管理
注意:本页上的内容适用于 Clanforge。如果使用 Multiplay Hosting,请参阅 Multiplay Hosting 文档。
当 Matchmaker 请求分配时,Clanforge 需要确保已分配的服务器正在运行,以便客户端可以连接到该服务器。此外,Clanforge 还需要能够在对服务器进行缩放时启动和停止服务器。
Clanforge 对游戏服务器进行监控和管理以验证其是否运行正常,并将其状态返回给客户。
游戏服务器状态
游戏服务器状态是指游戏服务器可以存在的配置状态。游戏服务器存在以下状态:
- 已分配
- 可用
- 已停止
- 已删除
- 已锁定
已分配
如果具有活跃的分配 UUID 并托管了游戏会话,则游戏服务器处于已分配状态。在已分配的服务器上,可能有活跃玩家连接到其托管的游戏会话。
可用
如果在线并且没有活跃的分配,则游戏服务器处于可用状态。处于可用状态的服务器位于可用游戏服务器池中,可由 Matchmaker 用于分配。
已停止
在收到停止命令后,游戏服务器会进入已停止状态,此过程通常自动完成。在以下场景中,系统会自动停止游戏服务器实例:
- 在关机以缩小规模之前,Clanforge 停止了机器上的所有游戏服务器。
- 在游戏服务器未响应时,Clanforge 停止并重启了游戏服务器。
- 如果 Clanforge 检测到游戏服务器意外停止,将重启进程。
- 如果游戏服务器崩溃,Clanforge 将停止并重启游戏服务器。
- Clanforge 对机器进行维护。
> **注意:**Clanforge 不会自动停止已分配的服务器。
已删除
仅当遇到以下场景时,Clanforge 会删除游戏服务器:
- 需要取消托管游戏服务器的机器(仅限裸机)
- 托管游戏服务器的机器是云机器,而由于机群地区正在缩小规模,不再需要云机器。
注意:Clanforge 不会自动删除已分配的游戏服务器。您必须先停止游戏服务器,然后才能删除游戏服务器。
已锁定
Clanforge 在敏感操作期间会暂时锁定游戏服务器,以防止服务器进行管理操作,例如启动、停止或重启服务器。已锁定状态与已分配、可用、已停止、已删除、在线或离线状态并不冲突。在进行以下操作时,Clanforge 可能会锁定游戏服务器:
- 镜像安装
- 维护操作
镜像安装
在机器上安装游戏镜像时,Clanforge 会锁定所有受影响的游戏服务器,以防止游戏服务器在安装完成前启动。受影响的游戏服务器是指配置为使用机器正在安装或正在更新的游戏镜像的游戏服务器。
维护操作
在执行维护作业(例如系统更新)之前,Clanforge 会锁定机器上的游戏服务器。
游戏服务器操作
游戏服务器操作是您可以在游戏服务器实例上执行的操作。可用的游戏服务器操作包括:
- 启动: 启动游戏服务器操作会向游戏服务器发送启动命令。收到启动命令后,已停止的游戏服务器将重新进入可用状态。
- 停止:停止游戏服务器操作会向游戏服务器发送停止命令。收到停止命令后,游戏服务器会进入不活跃状态。
- 重启:重启游戏服务器操作会向游戏服务器发送重启命令。重启命令会先发送一条停止命令,然后发送一条启动命令。
游戏服务器操作日志
每个游戏服务器都有操作日志,其中会列出与服务器 ID 关联的基础日志。操作日志只有来自 Clanforge 的系统的日志,并且不会列出任何来自游戏服务器二进制文件的日志记录。操作日志包含以下日志:
- 配置文件更改
- 手动游戏服务器操作
- 自动游戏服务器操作
- 游戏服务器问题
- 配置问题
如果您的游戏服务器二进制文件在文件中存储了日志信息,则您可以通过 Clanforge 公开该文件。公开后,您和您的团队可以通过 Clanforge 文件访问每个游戏服务器的文件。
服务器状态
当查询游戏服务器二进制文件时,Clanforge 会收集关于每个游戏服务器的统计信息。统计信息中包括内存使用量和玩家计数。
- 最大内存使用量
- 最大内存使用量
- 平均内存使用量
- 当前内存使用量
- 最小玩家计数
- 最大玩家计数
- 平均玩家计数
- 当前玩家计数
这些统计信息图提供了关于游戏服务器实例如何按已连接玩家来管理资源的信息。您可以访问 Clanforge 中的游戏服务器状态页面来获取这些图。每个游戏服务器状态页面都具有以下图:
- 每小时服务器使用量
- 每日服务器使用量
- 每周服务器使用量
- 每月服务器使用量
- 每年服务器使用量
游戏服务器崩溃
Clanforge 监控所有游戏服务器实例,观察是否存在崩溃迹象。不过,如果游戏服务器二进制文件支持游戏服务器查询协议,则监控会更加细致。如果游戏服务器二进制文件支持游戏服务器查询协议,则 Clanforge 将在以下方面对游戏服务器实例进行监控:
- 不活动时长
- 无法响应查询
- 资源使用情况
- 退出代码
如果游戏服务器二进制文件支持游戏服务器查询协议,则 Clanforge 仅监控游戏服务器实例的退出代码。当 Clanforge 检测到崩溃迹象(例如退出代码或无法响应查询)时,将重启游戏服务器实例。
分配预恢复流程
当游戏服务器报告问题时,Clanforge 的托管基础架构会尝试将游戏服务器实例保持活动状态。如果游戏服务器实例崩溃,Clanforge 会检查是否为该实例分配了玩家。如果为游戏服务器分配了玩家,则 Clanforge 会尝试进行分配预恢复。分配预恢复会使用同样的分配 UUID 再次启动游戏服务器进程。如果 Clanforge 成功重启了流程并且未产生错误,则游戏服务器实例将继续正常工作。然而,如果 Clanforge 无法重启进程,则 Clanforge 清除分配 UUID 来防止出现匹配错误,然后再次将服务器标记为可用。