故障排除

注意:本页上的内容适用于 Unity Cloud 后台中的 Multiplay Hosting。如果您使用 Clanforge,请参阅 Clanforge 文档

为服务器排除故障

缺少服务器实例

首次创建机群时,新服务器可能需要几分钟才会显示在 Unity Cloud 后台中。

如果 15 分钟后仍未显示服务器,请检查您的机群中每个地区的缩放设置。如果您的 **Minimum servers(最小服务器数)**设置小于 1,则服务器可能不会显示在 Unity Cloud 后台中。

服务器崩溃

服务器有时会崩溃,此时该服务器上任何活跃的游戏分配都会终止。下面详细列出了导致服务器崩溃的一些常见原因。

  • 服务器为这些玩家投入太多资源。
  • 版本配置有问题。
  • 版本可执行文件不存在。

如果服务器崩溃,而您确定自己的版本中不存在错误,请联系客户成功团队。

注意:在重启版本可执行文件前,Multiplay Hosting 会尝试转储流程,以允许您检查堆栈追踪。此过程在日志中记录为 SIGSEGV

服务器无法启动

服务器有时无法启动,导致您无法使用分配中的服务器。下面详细列出了可能导致服务器无法启动的一些常见原因。

  • 版本可执行文件有问题。
  • 服务器为这些玩家投入太多资源。
  • 版本配置有问题。

服务器实例过多

如果在 Unity Cloud 后台中显示了超出预期的服务器实例,则可能是因为 Multiplay Hosting 根据您的使用情况设置管理服务器密度的方式所致。

Multiplay Hosting 会额外创建两个服务器,以便充分利用可用容量。默认情况下,这些额外的服务器处于停止状态,可在不需要启动新机器的情况下,用于快速增加可用的服务器

针对安装进行故障排除

版本安装过慢

通常情况下,版本安装所需时间不应超过 15 分钟。下面详细列出了导致游戏镜像安装时长超出预期的一些常见原因。

  • 版本过大。
  • 同时更新的服务器过多。

针对使用情况设置进行故障排除

使用情况设置未经优化

您可能需要对服务器密度值进行多次调整才能找到理想值。例如,如果您注意到运行版本配置的服务器出现延迟或表现出性能问题,请调整服务器密度设置

要为您的游戏服务器找到理想的使用情况设置,最好的办法之一是按照约 100 MHz 的增量来提高或降低 CPU 频率,并按照约 100 MB 的增量来增加或减少 RAM。每次更改后,测试版本以查看服务器针对该版本的表现如何。

服务器的 CPU 占用率过高

导致服务器的 CPU 占用率超出预期的原因有很多,但其中一个常见原因是,主游戏循环以 CPU 所允许的最快速度运行,消耗了所有资源。Multiplay Hosting 检测到这种情况后,会在经过合理时间之后停止服务器。

您可以通过限制应用程序目标帧率和各帧之间传递的垂直同步数来避免发生这种情况。

应用程序目标帧率由 Application.targetFrameRate 设置控制。大多数情况下,将该值设置为 60 左右可防止游戏循环的 CPU 占用率过高。

请参阅 Application.targetFrameRate 脚本参考文档

Application.targetFrameRate = 60

QualitySettings.vSyncCount 设置甚至无需显示相关数据即可控制游戏使用的垂直同步数。大多数情况下,将该值设置为 0 可防止游戏循环的 CPU 占用率过高。请参阅 QualitySettings.vSyncCount 脚本参考文档

QualitySettings.vSyncCount  = 0

故障排除日志

缺少文件或日志

您可以通过 Unity Cloud 后台使用 Multiplay Hosting 显示服务器文件。要访问您的服务器文件,必须执行以下操作:

  • 版本配置中指定日志和文件的位置。

  • 通过启动参数配置变量或同时使用二者在版本配置中指定正确的日志和文件位置。与查询协议类似,在一个版本中实施的日志和文件位置也必须与指向该版本的所有版本配置中的日志和文件位置相匹配。以下代码块展示了如何在启动参数中使用 $$log_dir$$$$file_dir$$ 配置变量。

-logFile $$log_dir$$/Engine.log -dataPath $$files_dir$$

注意:如果您使用 Unreal 引擎构建自己的游戏,则需要先重定向自己的日志,然后才能在 Unity Cloud 后台中访问这些日志。

注意:如果您的服务器可执行文件是 Unity 版本,请在启动参数中使用 -logFile $$log_dir$$。如果您正在使用 Unity 版本,并且未在 Unity Cloud 后台中看到任何日志文件,请尝试使用 -logFile $$log_dir$$/logfile.log

编辑器故障排除

构建运行环境 (Player) 时出错:当前选定的脚本后端 (Mono) 未安装

Unity 2021.3.10f1 及更高版本的已知问题

当尝试 Multiplay Hosting 版本且当前版本目标不同于专用服务器以及所选脚本后端不可用时,会发生这种错误。

解决方案:

  • 升级到当前 LTS 的最新版本(首选),或者
  • 在执行 Multiplay Hosting 版本之前切换到 Dedicated Server 版本目标,或者
  • 使用 UnityHub 添加缺少的脚本后端

注意:如果您的服务器可执行文件是 Unity 版本,请在启动参数中使用 -logFile $$log_dir$$。如果您正在使用 Unity 版本,并且未在后台中看到任何日志文件,请尝试使用 -logFile $$log_dir$$/logfile.log。对于此用例,也可以使用 $$files_dir$$ 参数。