Rediger

Configure pool settings

This article describes how to configure the basic settings of your Managed DevOps Pools instance.

Overview

To view an overview of pool settings, go to Overview.

Screenshot that shows pool overview essentials.

From Overview, you can:

Pool settings

To configure your pool, go to Settings > Pool.

Screenshot that shows the Pool settings menu.

To configure your pool, use the following settings:

Dev Center project

Select the Dev Center project instance for your pool. (If you don't have one, you can create a Dev Center instance and Dev Center project instance when you create your pool.)

Screenshot that shows Dev Center settings.

Azure DevOps organization

If you configured your pool for a single Azure DevOps organization, you can specify the organization in pool settings.

Screenshot that shows how to configure a single organization.

If you configured your pool for multiple organizations, the Azure DevOps organization setting isn't present in pool settings. To configure your pool for use in multiple organizations, go to Settings > Security, and configure Use pool in multiple organizations.

By default, your pool is available to all projects in your specified organizations. To limit your pool to specific projects, see Security settings: Configure organization access.

Maximum agents

Specify the maximum number of agents that can be provisioned at the same time in your pool. For example, if you specify a Maximum agents value of 2, you can run a maximum of two agents at the same time. If more than two jobs are queued, only two agents run jobs, while the other jobs wait.

You can view the current status and count of the provisioned agents in your pool by using the Agents pane. All of the agents in the Agents view (except agents with a Returned status) run on a virtual machine resource, and count toward the Maximum agents count.

You can configure the Maximum agents value in Pool settings for an existing pool, and on the Basics tab when you create a pool.

Screenshot that shows the Maximum agents setting.

Note

The Maximum agents value configures the maximum number of agents that can be provisioned at the same time, but your organization's self-hosted parallel jobs count specifies the number of jobs that can run concurrently. Ensure that you have enough self-hosted parallel jobs available in your organization to enable your agents to run jobs. For more information, see Azure DevOps Services parallel job pricing.

Agent size

The Agent size setting specifies the Azure virtual machine size to use to host your Managed DevOps Pools agents. Managed DevOps Pools supports up to five agent sizes per pool by using Instance mix.

Screenshot that shows the Agent size setting.

To view and select an Azure virtual machine size that's available in your Azure region, select Select up to 5 SKU sizes. Agent sizes (SKUs) with available Managed DevOps Pools quotas are marked Available. You can request more quota for SKUs that are marked Not Available. After a quota request for a Not Available SKU is approved, it's marked Available. Learn more about Managed DevOps Pools quotas.

To reorder the agent sizes, drag and drop them using the handle in the desired order. The order determines the priority for provisioning agents, with the topmost size having the highest priority.

Screenshot that shows multiple agents in the Agent size setting.

Instance mix

Managed DevOps Pools supports up to five agent sizes per pool. This feature uses Virtual Machine Scale Set instance mix capabilities.

To use Managed DevOps Pools instance mix, configure more than one agent size for your pool. When you specify more than one agent size, Managed DevOps Pools first attempts to provision an agent with the first size in the pool configuration. If that size is unavailable, it tries the next size in the list. This allocation strategy maps to the Prioritized instance mix allocation strategy to determine which VM size to provision first, with the agent sizes in your pool ranked in the order in which they are displayed in Pool settings, which is the same as the order they are listed in the pool's configuration.

When you configure multiple agent sizes for your pool, keep the following recommendations and requirements in mind.

  • Recommendations
    • To ensure balanced load distribution, use VM sizes with similar vCPU and memory.
    • For consistent performance, use VM sizes of similar type (for example, both D-series).
  • Requirements
    • You must have sufficient quota for each VM size in the target subscription and region.
    • Up to five VM sizes can be specified.
    • Supported VM families: A, B, D, E, and F families only.
    • Each selected VM size must be from a different VM series. For example, you can't use both Standard_D8ads_v5 and Standard_D16ads_v5 because they're both from the Dadsv5 series. But you could use both Standard_D8ads_v5 and Standard_D8ds_v5 because they belong to different series (Dadsv5 and Ddsv5) and have consistent architecture, storage, and local-disk characteristics. For more information about VM series and sizes, see Sizes for virtual machines in Azure: Name structure breakdown.
    • You can't mix VM architectures (for example, Arm64 and x64) in the same instance mix.
    • VMs with different storage interfaces (SCSI vs NVMe) can't be mixed.
    • You can't mix VM SKUs that use premium storage and non-premium storage in the same instance mix.
    • All VMs must share the same Security Profile and local disk configuration.

Note

These requirements are a subset of the Virtual Machine Scale Set instance mix: Limitations and unsupported scenarios, with the exception of the Each selected VM size must be from a different VM series requirement, which is specific to Managed DevOps Pools.

Use the VM size name structure to identify potentially compatible sizes. Start with sizes from supported families that belong to different VM series, and prefer sizes with the same vCPU count and feature letters as your primary size. In particular, check the processor indicator (a, p, or no indicator), local temporary disk indicator (d), and Premium Storage indicator (s).

The VM size name doesn't identify every compatibility characteristic. Before you add a size, review its VM-series documentation and verify that its architecture, storage interface, Premium Storage capability, security-profile support, and local-disk configuration are compatible with the other sizes in the pool. You can also use Copilot to help generate and evaluate a list of potentially compatible sizes.

Use Copilot to identify eligible VM sizes

The following example prompt for Copilot Chat helps you identify VM sizes that might be eligible to pair with your preferred size. Copy and paste the prompt into Copilot Chat, and replace the placeholders with your configuration details.

I want to configure a Managed DevOps Pools instance mix with the following settings:

- Primary VM size: [PRIMARY VM SIZE]
- Azure region: [AZURE REGION]

Identify up to four additional VM sizes that are eligible to pair with my primary VM size. Use only current official Microsoft Learn documentation, starting with these sources and following their links to the relevant VM family and series documentation:

- https://learn.microsoft.com/azure/virtual-machines/sizes/overview
- https://learn.microsoft.com/azure/virtual-machine-scale-sets/instance-mix-overview

Apply all of these requirements:

1. Use only VM sizes from the A, B, D, E, or F families.
2. Select each VM size from a different VM series, including a series different from the primary VM size and from every other suggested size.
3. Use the same architecture, storage interface, premium-storage capability, security-profile support, and local-disk configuration as the primary VM size.
4. Recommend no more than four additional sizes because a Managed DevOps Pools instance mix supports up to five sizes total.

Also apply the instance mix recommendations by preferring VM sizes with similar vCPU and memory specifications and of a similar type to the primary VM size.

Return a comparison table that shows the VM size, family, series, vCPUs, memory, architecture, storage interface, premium-storage capability, local-disk configuration, and security-profile support. Explain why each suggested size is eligible and rank the suggestions from best to worst match. Cite an official Microsoft Learn source for every technical claim. Don't assume that a size is available or that I have sufficient quota in my region. Clearly identify the regional availability and quota checks that I must perform separately. If you can't verify a requirement for a VM size, exclude that size.

Copilot is powered by AI, so surprises and mistakes are possible. Verify each suggested VM size in Pool settings and confirm that you have sufficient quota before you update the pool. For more information, see Copilot general use FAQs.

Common quota and capacity issues

If your subscription doesn't have the capacity to configure your pool with the Azure VM SKU and maximum agents count that you specify, you receive an error message like this:

Cores needed to complete this request is 8, which exceeds the current limit of 0 for SKU family standardDDSv4Family in region eastus. Please choose a different region if possible, or request additional quota at https://portal.azure.com/#view/Microsoft_Azure_Support/NewSupportRequestV3Blade/issueType/quota/subscriptionId/subscription_id_placeholder/topicId/3eadc5d3-b59a-3658-d8c6-9c729ba35b97

To resolve the issue, see Review Managed DevOps Pools quotas.

Not all SKUs are supported for all Azure regions. If you receive an error like SKU family <sku-family> is not available in location <region>, ensure that your SKU size is supported for your region. For more information, see Sizes for virtual machines in Azure and Products available by region.

Important

Azure Pipelines images aren't currently supported with v6 and v7 Azure VM agent sizes. For example, if you choose Standard D2as v6 with an Azure Pipelines image, you get an error like SkuNotCompatibleWithImageDiskControllerType: Incompatible DiskControllerType between Image(s) MMSWindows2025-g2 and Pool SKU Standard_D2as_v6. Select a different image or sku for pool mdp-11-21-2025..

To resolve this issue, choose a different agent size that isn't v6 or v7.

OS disk type

Managed DevOps Pools provides the following disk types for the OS disk:

  • Standard
  • Standard SSD
  • Premium SSD

The default OS disk type is Standard. If your workload's throughput exceeds the level of the standard tier, you can potentially gain a performance improvement in your workload by upgrading to a more performant disk type. For more information on disk types and performance, see Azure managed disk types.

You can configure OS disk type in Pool settings for an existing pool. You can configure OS disk type on the Basics tab when you create a pool.

Screenshot that shows the OS disk type setting.

Images

Managed DevOps Pools provides you with several VM image options to use to run pipelines in your pool. You can create your pool by using selected marketplace VM images, your own custom images in an Azure Compute Gallery instance, or the same Windows and Linux images that are used by Azure Pipelines Microsoft-hosted agents.

Important

Managed DevOps Pools now offers Generation 2 versions of Azure Pipelines images, and the original Generation 1 Azure Pipelines images are no longer receiving updates.

Managed DevOps Pools recommends that you migrate your pools that use the original Generation 1 versions of Azure Pipelines images to the Generation 2 versions. For more information, see Azure Pipelines Generation 2 images.

Note

The following images are deprecated and have been removed.

  • Azure Pipelines - Windows Server 2019
  • Ubuntu 20.04

For more information, see Managed DevOps Pools image deprecation schedule.

Screenshot that shows how to configure an image.

You can configure your pool to use a single image or multiple images. You can also use aliases to configure your pipelines to use a specific image. For more information, see Configure Managed DevOps Pools images.

Important

If you have multiple images in your pool, and you don't use demands in your pipelines to designate an image, the pipelines run by using the first listed image in your pool. You can change the order of the images in your pool in the following ways:

  • Use templates: Change the order of the images in the images list in the fabricProfile section.
  • Use dragging: Order the images in the images list in the Azure portal.