Azure DevOps Pipelines - 如何选择代理池中的代理来运行作业
我有以下关于如何将作业安排到代理池中的代理的问题。
代理上的 AzDO 作业调度
这涉及 AzDO 管道如何决定从池中选择哪个代理来运行作业。 期望工作将均匀地分布在池中的代理之间。然而,我们注意到只有一个代理反复成为作业执行的目标,这导致代理的使用出现偏差,并且其余代理在作业等待时处于空闲状态。 我检查了代理商是否有任何需求/能力,但没有。 问题:-
- 用于选择的算法或作业调度策略是什么 代理?作业落地后是否有默认粘性 在代理中,这意味着一旦从池中选择了代理,那么 后续工作会粘在同一个代理上吗?
- 为什么池中的多个代理中只有一个代理被使用,而其余代理则处于空闲状态。
I have the following question on how jobs are scheduled onto agents in an Agent pool.
AzDO Job Scheduling on Agents
This pertains to HOW the AzDO pipeline decides to pick which of the agents from the pool to run jobs.
The expectation is that jobs will be evenly distributed across the agents in the pool. However, we are noticing that only one of the agents is repeatedly the target of job executions, and this is skewing up the agent usage and rest of the agents are idling, while jobs are waiting.
I examined if there are any demand/capabilities placed on the agents and there are none.
Questions: -
- What is the algorithm or job scheduling policy used to pick the
agents? Is there any default stickiness once the job starts landing
in an agent, meaning once an agent is selected from a pool then
subsequent jobs get sticky to the same agent? - Why is only a single agent out of multiple agents in a pool getting used, while rest of agents are idling.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ADO 不选择代理。代理“询问”ADO 是否有新工作:https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#communication-with-azure-pipelines
你提到“工作”。我不确定您是否指的是 ADO 作业的技术术语。如果是这样:作业属于一个阶段。整个阶段将始终在相同的代理上执行。后续阶段可能在不同的代理上运行。
我假设您没有使用“功能”?!否则这可能会解释您所看到的行为。
ADO does not pick an agent. The agents "ask" ADO if there is new work for them: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#communication-with-azure-pipelines
You mention "jobs". I'm not sure if you mean the technical term of an ADO job. If so: Jobs belong to a stage. An entire stage will always be executed on the same agents. Subsequent stages might be running on different agents.
I assume you are not using "Capabilities"?! Otherwise that might explain the behavior that you are seeing.