居家办公
Incredibuild 能够充分利用您的环境中每一台计算机的计算能力。然而,这需要在您的计算机之间实现快速网络连接,无论是物理机、虚拟机还是云资源之间的连接。
工作模式正不断变化,工作时常是在家里完成,网络速度也因此不大理想。为应对新的形势,我们创建了一些最佳实践来帮助您配置支持居家办公的环境。
网络要求
-
带宽:70Mb/s 或更大的带宽。越大越好。
-
延迟:低于 200MS。
居家环境类型
虽然从技术角度而言,您可以在任何环境下使用 Incredibuild 工作,但您的网速可能会对性能造成限制。因此,我们建议与一组部署在同一网络中的资源进行连接,比如云端或办公室。如果您没有其他选择,也可以在家里的多台个人设备上免费安装 Incredibuild。

您可以借助 Incredibuild 的云解决方案, 使用云技术按需部署 Helper Agent。该解决方案只有在您家里的网络连接稳定可靠的情况下才会起作用。建议在满足下列条件的前提下采用该方案:
-
家中网络连接稳定可靠,但 Helper Agent 计算机连接不稳定 (其他居家办公的同事)。
-
您的网络连接稳定可靠,但您需要使用网络质量不太理想的 VPN 与 Helper Agent 进行连接。
若存在上述情况,您可以将自己的计算机用作 Initiator,并根据您的需求在云端充分利用 Agent。

居家办公性能优化最佳实践
为了在居家办公时实现性能最大化,我们建议您根据实际情况采用以下最佳实践:

您可以使用 Build Cache 在不影响速度的情况下居家构建。由于上行带宽有限,居家办公会影响构建速度。Build Cache 允许您重用存储在本地计算机的先前构建数据,从而大幅缩短构建时间。

注意: 以下为使用 Unreal Engine 4.24 和5.0,以及 100 Mbps 下行、5 Mbps 上行不对称带宽连接进行测试和验证后提供的建议。
在家庭网络环境下使用 Unreal Enginewith,由于上行带宽存在限制,所以会严重影响性能。导致性能受影响的两个主要因素:
-
Unreal Engine 在每次构建中都会创建大量的 PCH 文件。
-
目标工具集(如 Visual Studio 编译器工具集)的链接远程方式运行,将许多 OBJ 和 PDB 文件同步到远端机器上。
在十分有限的上传带宽条件下尝试将大量 PCH、OBJ 和 PDB 文件同步到远端机器上,这会大幅降低任务的执行速度,甚至可能导致任务突然终止和断开连接。因此,为克服性能受损问题并实现加速,这两个问题必须得以解决。
禁用 PCH 文件使用
为提升居家场景中使用 Unreal Engine 进行构建的性能,建议禁用 PCH 文件。您可以通过 Unreal Engine 的 BuildConfiguration.xml 文件禁用 PCH 文件。BuildConfiguration.xml 文件路径: install_dir\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml
> 禁用 PCH 文件使用操作步骤:
将下列 XML 元素添加到 Unreal Engine 的 BuildConfiguration.xml 文件中:
<BuildConfiguration>
<bUsePCHFiles>false</bUsePCHFiles>
</BuildConfiguration>
例如,在以下 BuildConfiguration.xml 文件中禁用 PCH 文件:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration >
<BuildConfiguration>
<bUsePCHFiles>false</bUsePCHFiles>
</BuildConfiguration>
</Configuration>
强制链接本地运行
为提高居家环境下使用 Unreal Engine 进行构建的性能,我们还建议强制改变链接的运行,不以远程模式运行可避免在带宽连接十分有限的情况下将大量 OBJ 和 PDB 文件同步到远程计算机上。
可通过将 LinkAction.bCanExecuteRemotely 链接器参数设置为 False 进行更改。设置为 False 后,与 Incredibuild 集成的 Unreal Build System 将收到指示,并在本地计算机上执行所有链接任务。该标志单独应用于每个工具集,驻留在所选工具集的 .cs 文件中。
默认情况下,所有工具集的 LinkAction.bCanExecuteRemotely 参数均已设置为 False。这样,所有链接都会在您的本地计算机上运行,您也无需更改相应配置。但是,有两个工具集需要您更改配置:
-
VCToolChain
配置文件路径:
Install_dir:\UE4\Engine\Source\Programs\UnrealBuildTool\Platform\Windows\VCToolChain.cs
-
HoloLensToolChain
配置文件路径:
Install_dir:\UE4\Engine\Source\Programs\UnrealBuildTool\Platform\HoloLens\HoloLensToolChain.cs
> 强制链接本地运行的操作步骤:
-
打开您当前使用的工具集适用的 .cs 文件。
-
找到 LinkAction.bCanExecuteRemotely 参数,将参数值更改为 False。
例如,在以下 VCToolChain.cs 文件中将 VCToolChain 的链接设置为不允许远程运行:

如果条件允许,我们建议通过物理有线连接确保网络连接速度和可靠性。

即使家庭网络的速度很快,通过 VPN 进行连接仍有可能导致新的性能限制问题。如果您必须使用 VPN 连接网络,请确保您的带宽能够满足使用需求。

建议尽量避免从您家庭环境中的计算机上分配需要大量输入文件的任务。比如尽量避免使用 PCH 和 PDB 文件。

如果有可能使用数量更少的计算机获得相同数量的内核,就能够减少总共需要的网络流量,从而提高性能。

居家办公时,在某些情况下针对每次构建减少使用的 Helper 计算机内核可以提高性能。
您可以在一台个人 Initiator Agent 上更改相应配置,或是通过 Coordinator 将配置应用到所有 Agent 上:
-
在 Initiator Agent 中,进入 Agent Settings > Initiator > General。勾选 Limit maximum number of cores utilized in build to 并减少数量。
-
在 Coordinator 中,进入 Coordinator Settings > Agent Assignment > Advanced 并减少数量。

-
用作 Helper 的虚拟计算机应使用数量更多的 CPU 内核,例如 32 或 64 核。只作为 Initiator 的计算机则不需要。
-
使用 Incredibuild 的 Cloud 解决方案时,需测试您的内存池大小,确保能够容纳所有您计划用于任务提速的 Helper 虚拟机,从而避免缓存数据丢失问题。在 Incredibuild Cloud 解决方案的 Settings 页面,测试 Total Cores Limit 是否等于 Number of Cores 乘以 Pool 中的 Number of VMs。如果 Total Cores Limit 数值更大,则虚拟机会在运行后终止运行,导致缓存数据丢失,降低居家办公效率。在该示例中:160 Total Cores = 32 Cores * 5 VMs in Pool