Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Important
When you use Azure DevOps Server, you don't pay for self-hosted concurrent jobs. The number of agents is your only limit.
Important
Public projects in Azure DevOps are retired. Starting in 2027, existing public projects convert to private. For more information, see Public projects retirement and Migrate from a public project to GitHub.
Learn how to estimate how many parallel jobs you need and buy more parallel jobs for your organization.
Prerequisites
| Category | Requirements |
|---|---|
| Azure DevOps |
|
| Azure |
What is a parallel job?
A parallel job in Azure DevOps Services represents the compute capacity to run a pipeline job. If you have one parallel job, you can run one pipeline job at a time. If you have five parallel jobs, you can run five pipeline jobs at a time. Parallel jobs are configured at the Azure DevOps organization level and shared by all pipelines in the organization's projects. You can start as many pipelines as you want, but the parallel jobs available in your organization determine how many can run concurrently.
Tip
Think of a parallel job like a lane in a swimming pool. If your swimming pool has one lane, only one swimmer at a time can use the pool. If more swimmers want to use the pool, they line up and wait. When the swimmer in the lane finishes, the next swimmer in line can use the lane. If it takes too long for all the swimmers to get a turn, you can add more lanes to the pool.
In Azure Pipelines, if your pipelines take too long to complete, buy more parallel jobs for your organization so more jobs can run concurrently.
Azure DevOps Services has two types of parallel jobs: Microsoft-hosted and self-hosted. It offers a free tier and a paid tier of service for both types. The self-hosted free tier is automatically granted, but you must enable the Microsoft-hosted free tier.
When you enable the free tier, for private projects you get one free job that runs for up to 60 minutes each time, with a monthly limit of 1,800 minutes (30 hours). The same allocation applies to existing public projects after they convert to private in 2027. To enable the Microsoft-hosted free tier, see How do I enable the free tier of parallel jobs?
| Tier | Job time limit | Monthly time limit |
|---|---|---|
| Free tier | One free job that can run up to 60 minutes each time | 1,800 minutes (30 hours) per month |
| Paid tier | 360 minutes per job | No monthly limit |
Tip
If your pipeline exceeds the maximum job time limit, try splitting your pipeline into multiple jobs. For more information on jobs, see Specify jobs in your pipeline.
When the free tier is no longer sufficient, you can pay for more capacity per parallel job.
When you purchase your first Microsoft-hosted parallel job, the number of parallel jobs you have in the organization is still one. To run two jobs concurrently, you need to purchase two parallel jobs if you're currently on the free tier. The first purchase only removes the time limits on the first job.
New organizations have a maximum limit of 25 parallel jobs for Microsoft-hosted agents. Contact support to request a limit increase. Limit increases are subject to capacity in your organization's region.
How much do parallel jobs cost?
- For pricing cost per parallel job, see the Azure DevOps pricing page.
- To buy more parallel jobs, see How do I buy more parallel jobs.
How many parallel jobs do I need?
As the number of queued pipelines exceeds the number of parallel jobs you have, your pipeline queues grow longer. When you find the queue delays are too long, you can purchase more parallel jobs as needed.
A simple rule of thumb: Estimate that you need one parallel job for every four to five users in your organization.
In the following scenarios, you might need multiple parallel jobs:
- If you have multiple teams, and if each team requires CI, you might need a parallel job for each team.
- If your CI trigger applies to multiple branches, you might need a parallel job for each active branch.
- If you develop multiple applications by using one organization, you might need more parallel jobs: one to deploy each application at the same time.
Use the following methods to check your parallel job limits and job history.
View job history using the pool consumption report
You can use the Pool consumption report, available on the Analytics tab of your agent pool, to see a chart of running and queued jobs graphed with your parallel jobs for the previous 30 days. If you have a backlog of queued jobs and your running jobs are at the concurrency limit, you might want to purchase more parallel jobs. For more information, see Pool consumption report.
Check the parallel jobs setting directly
Figure out how many parallel jobs you need by first seeing how many parallel jobs your organization currently uses:
Browse to Organization settings > Pipelines > Parallel jobs.
URL example:
https://{Your_Organization}/_admin/_buildQueue?_a=resourceLimitsView the maximum number of parallel jobs that are available in your organization.
Select View in-progress jobs to display all the builds and releases that are actively consuming an available parallel job or that are queued waiting for a parallel job to be available.
How do I buy more parallel jobs?
Before you change the number of parallel jobs, make sure that:
- Billing is set up for your organization.
- You're a member of the Project Collection Administrators group.
To buy more parallel jobs, or to change the quantity already purchased:
Sign in to your organization (
https://dev.azure.com/{yourorganization}).Select
Organization settings.
Select Parallel jobs under Pipelines, and then select either Purchase parallel jobs or Change for Microsoft-hosted jobs or Change for self-hosted jobs.
Enter your desired quantity of Microsoft-hosted or self-hosted jobs, and then select Save.
It might take up to 30 minutes for the new number of parallel jobs to become active.
How do I enable the free tier of parallel jobs?
To receive the free grant of parallel jobs, link your Azure DevOps organization to a valid Azure subscription. Set up billing for your organization to link an Azure subscription. Once you configure billing, the free grant automatically applies to private projects in the organization.
For more information about the free tier of parallel jobs, see How much do parallel jobs cost?
Note
Public projects are retired. New public projects can no longer be created. Existing public projects retain their current free parallelism grants until they convert to private in 2027.
Azure DevOps Server doesn't have a dedicated free tier of parallel jobs. When you use Azure DevOps Server, you don't have to pay for self-hosted concurrent jobs. The number of agents is your only limit.
FAQ
- Can I assign a parallel job to a specific project or agent pool?
- How does Azure DevOps Services consume parallel jobs?
- Are there limits on who can use Azure Pipelines?
- Are there any limits on the number of builds and release pipelines that I can create?
- What about the option to pay for hosted agents by the minute?
- I use XAML build controllers with my organization. How am I charged for them?
Can I assign a parallel job to a specific project or agent pool?
Currently, you can't partition or dedicate parallel job capacity to a specific project or agent pool. For example:
- You purchase two parallel jobs in your organization.
- You start two runs in the first project, and both the parallel jobs are consumed.
- You start a run in the second project. That run doesn't start until one of the runs in your first project is completed.
How does Azure DevOps Services consume parallel jobs?
A pipeline run consumes a parallel job only while it's actively running on an agent:
- For release or YAML pipelines, a run consumes a parallel job only while it's actively being deployed to a stage. A run that's waiting for an approval or a manual intervention doesn't consume a parallel job.
- Server jobs and releases that deploy to a deployment group don't consume parallel jobs.
The following example illustrates how parallel jobs are consumed:

- FabrikamFiber CI Build 102 (main branch) starts first.
- Completion of FabrikamFiber CI Build 102 triggers deployment of FabrikamFiber Release 11.
- FabrikamFiber CI Build 101 (feature branch) is triggered. The build can't start yet because Release 11's deployment is active. So the build stays queued.
- Release 11 waits for approvals. Fabrikam CI Build 101 starts because a release that's waiting for approvals doesn't consume a parallel job.
- Release 11 is approved. It resumes only after Fabrikam CI Build 101 is completed.
Are there limits on who can use Azure Pipelines?
You can have as many users as you want when you're using Azure Pipelines. There's no per-user charge for using Azure Pipelines. Users with both basic and stakeholder access can author as many builds and releases as they want.
Are there any limits on the number of builds and release pipelines that I can create?
No. You can create hundreds or even thousands of pipelines for no charge. You can register any number of self-hosted agents for no charge.
What about the option to pay for hosted agents by the minute?
Some of our earlier customers are still on a per-minute plan for the hosted agents. In this plan, you pay $0.05/minute for the first 20 hours after the free tier, and $0.01/minute after 20 hours. Because of the following limitations in this plan, you might want to consider moving to the parallel jobs model:
- When you're using the per-minute plan, you can run only one job at a time.
- When you run builds for more than 14 paid hours in a month, the per-minute plan might be less cost-effective than the parallel jobs model.
I use XAML build controllers with my organization. How am I charged for them?
You can register one XAML build controller for each self-hosted parallel job in your organization. Your organization gets at least one free self-hosted parallel job, so you can register one XAML build controller for no extra charge. For each additional XAML build controller, you need an additional self-hosted parallel job.