性能基础设施¶
所有性能测试都在裸机或真实的硬件设备上运行,而不是虚拟机。这使我们能够获得更真实的性能指标,并有助于减少数据的可变性。有关我们测试的每个平台使用的硬件、尝试运行等待时间以及请求新设备的指南,请参见下文。
平台和使用的硬件¶
目前,这些信息列在 Mozilla Wiki 中,此处可见(有关此方面的进展,请参见 bug 1883400)。
Try 运行和等待时间¶
鉴于我们的测试在硬件上运行,可用于运行测试的设备数量有限。这意味着,尝试运行(例如,由 Mach Try Perf 调度的测试)很可能会延迟,等待容量释放。这种有限的容量也是为什么使用 mach try perf
可以调度的任务数量限制为 600 个。
需要注意的是,尝试运行的优先级较低,而我们的生产分支(例如,autoland/mozilla-central)的优先级较高。在这些分支推送次数较多的日子里,尝试运行会遇到更多延迟。这些平台可用的容量也不同,这会改变您在这些平台上等待测试开始的时间。**要了解当前所有平台上待处理或正在运行的任务数量**,请查看此 redash 查询**或查阅下面的图表。**
在某些情况下,任务可能会遇到“任务超时”,即在它们能够运行之前过期。如果有很多其他优先级更高的任务正在调度,则可以预期这种情况,因此最好检查上面提到的查询以查看目标平台上的负载情况。但是,也存在测试池脱机或发生其他问题的情况。通常,对于这些任务超时,请在 #perftest on Matrix 中告知我们,因为我们可能没有意识到这个问题。
请求新的测试设备¶
有时,由于我们现有设备的配置覆盖范围不足,在不同的设备上测试更改会很有用。如果您需要本地测试设备,则可以轻松请求/报销设备。但是,对于在持续集成 (CI) 和/或尝试运行中进行测试,准备一个设备可能非常昂贵且耗时。通常需要花费**几个月**才能使设备运行起来,并且由于合同限制,也可能会减少其他设备的可用性。这项工作涉及多个团队,因此所需时间取决于这些团队目前和未来的任务。
如果设备仅用于单个问题,则建议订购该设备用于本地测试。如果是涉及多个开发人员/团队的长期项目,需要持续监控,那么在 CI 中拥有这些设备可能很有用,以便可以在 mozilla-central/autoland 上运行它们。这还有助于确保您的更改不会随着时间的推移而发生回归。请注意,这应该提前计划,以便在项目开始之前有时间设置设备。
对于长期项目,最好确定需要这些设备多长时间,以及是否需要调整 CI 中的设备设置以包含这些额外的配置。如果在长期项目完成后不再需要这些设备,那么在 CI 中运行这些设备可能没有用处,使用本地设备会更快、更便宜。
如果您需要获取本地测试设备,请联系您的经理询问报销事宜。如果您认为需要在 CI 中开始在新的设备上进行测试,请在 #perftest on Matrix 中联系我们。或者,您可以在 此处提交 Bug 以获取支持。