为什么某些 Azure DevOps 代理比其他代理快得多?

Mic*_*ake 7 devops azure-devops

我们正在使用 Microsoft Azure DevOps 来构建和运行测试。

我们有 10 个 Microsoft 提供的代理,并使用 YAML ( defaultVmImage: 'windows-latest') 来构建和运行测试。

有时测试需要 40 分钟。有时需要1小时40分钟!

为什么会有这样的差异呢?确定不是噪音邻居?他们位于不同的地理位置吗?

在此输入图像描述

(例如 AGENT_MACHINENAME“fv-az689”)

https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#capability-and-limitations

我们能否检测到速度慢的代理并提前使构建失败?

收集性能信息没有帮助https://github.com/microsoft/azure-pipelines-tasks/blob/master/ci/

在此输入图像描述

  - task: DotNetCoreCLI@2
    displayName: 'dotnet test'
    inputs:
      command: test
      projects: '**/*.Tests/**/*.Tests.dll'
      arguments: --verbosity detailed --filter "$(testFilter)"
Run Code Online (Sandbox Code Playgroud)

bds*_*bds 0

Microsoft 托管的代理在 Azure Standard_DS2_v2实例上运行。它们运行在几代不同的 Xeon上 CPU 上,并有 2 个可用内核。

\n
\n

DSv2 系列大小在第三代 Intel\xc2\xae Xeon\xc2\xae Platinum 8370C (Ice Lake)、Intel\xc2\xae Xeon\xc2\xae Platinum 8272CL (Cascade Lake)、Intel\xc2\xae Xeon\ 上运行xc2\xae 8171M 2.1GHz (Skylake) 或 Intel\xc2\xae Xeon\xc2\xae E5-2673 v4 2.3 GHz (Broadwell) 或 Intel\xc2\xae Xeon\xc2\xae E5-2673 v3 2.4 GHz (Haswell) 处理器采用 Intel Turbo Boost Technology 2.0 并使用高级存储。

\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
家庭中央处理器单核得分2x 单核分数
哈斯韦尔E5-2673 v330056010
布罗德韦尔E5-2673 v434056810
天湖8171M34326864
喀斯喀特湖8272CL38627724
冰湖8370C518810376
\n
\n

Ice Lake CPU 的速度几乎是较旧且较慢的 CPU 的两倍,并且是运行之间一些差异的根源。

\n