Proposed Pull Request Change

title description ms.topic ms.date
Choose VM sizes and images for pools How to choose from the available VM sizes and OS versions for compute nodes in Azure Batch pools concept-article 01/05/2026
📄 Document Links
GitHub View on GitHub Microsoft Learn View on Microsoft Learn
Content Truncation Detected
The generated rewrite appears to be incomplete.
Original lines: -
Output lines: -
Ratio: -
Raw New Markdown
Generating updated version of doc...
Rendered New Markdown
Generating updated version of doc...
+0 -0
+0 -0
--- title: Choose VM sizes and images for pools description: How to choose from the available VM sizes and OS versions for compute nodes in Azure Batch pools ms.topic: concept-article ms.date: 01/05/2026 # Customer intent: "As a cloud engineer, I want to select the appropriate VM sizes and images for Azure Batch pools, so that I can optimize performance and cost for my workloads." --- # Choose a VM size and image for compute nodes in an Azure Batch pool When you select a node size for an Azure Batch pool, you can choose from almost all the VM sizes available in Azure. Azure offers a range of sizes for Linux and Windows VMs for different workloads. ## Supported VM series and sizes ### Pools in Virtual Machine configuration Batch pools in the Virtual Machine configuration support almost all [VM sizes](/azure/virtual-machines/sizes) available in Azure. The supported VM sizes in a region can be obtained via the Batch Management API. You can use one of the following methods to return a list of VM sizes supported by Batch in a region: - PowerShell: [Get-AzBatchSupportedVirtualMachineSku](/powershell/module/az.batch/get-azbatchsupportedvirtualmachinesku) - Azure CLI: [az batch location list-skus](/cli/azure/batch/location#az-batch-location-list-skus) - [Batch Management APIs](batch-apis-tools.md#batch-management-apis): [List Supported Virtual Machine SKUs](/rest/api/batchmanagement/location/list-supported-virtual-machine-skus) For example, using the Azure CLI, you can obtain the list of skus for a particular Azure region with the following command: ```azurecli-interactive az batch location list-skus --location <azure-region> ``` > [!TIP] > Avoid VM SKUs/families with impending Batch support end of life (EOL) dates. These dates can be discovered > via the [`ListSupportedVirtualMachineSkus` API](/rest/api/batchmanagement/location/list-supported-virtual-machine-skus), > [PowerShell](/powershell/module/az.batch/get-azbatchsupportedvirtualmachinesku), > or [Azure CLI](/cli/azure/batch/location#az-batch-location-list-skus). > For more information, see the [Batch best practices guide](best-practices.md) regarding Batch pool VM SKU selection. ### Using Generation 2 VM Images Some VM series, such as [FX](/azure/virtual-machines/fx-series) and [Mv2](/azure/virtual-machines/mv2-series), can only be used with [generation 2 VM images](/azure/virtual-machines/generation-2). Generation 2 VM images are specified like any VM image, using the `sku` property of the [`imageReference`](/rest/api/batchservice/pools/create-pool#batchvmimagereference) configuration; the `sku` strings have a suffix such as `-g2` or `-gen2`. To get a list of VM images supported by Batch, including generation 2 images, use the ['list supported images'](/rest/api/batchservice/pools/list-supported-images) API, [PowerShell](/powershell/module/az.batch/get-azbatchsupportedimage), or [Azure CLI](/cli/azure/batch/pool/supported-images). ## Size considerations - **Application requirements** - Consider the characteristics and requirements of the application run on the nodes. Aspects like whether the application is multithreaded and how much memory it consumes can help determine the most suitable and cost-effective node size. For multi-instance [MPI workloads](batch-mpi.md) or CUDA applications, consider specialized [HPC](/azure/virtual-machines/sizes-hpc) or [GPU-enabled](/azure/virtual-machines/sizes-gpu) VM sizes, respectively. For more information, see [Use RDMA-capable or GPU-enabled instances in Batch pools](batch-pool-compute-intensive-sizes.md). - **Tasks per node** - It's typical to select a node size assuming one task runs on a node at a time. However, it might be advantageous to have multiple tasks (and therefore multiple application instances) [run in parallel](batch-parallel-node-tasks.md) on compute nodes during job execution. In this case, it's common to choose a multicore node size to accommodate the increased demand of parallel task execution. - **Load levels for different tasks** - All of the nodes in a pool are the same size. If you intend to run applications with differing system requirements and/or load levels, we recommend that you use separate pools. - **Region availability** - A VM series or size might not be available in the regions where you create your Batch accounts. To check that a size is available, see [Products available by region](https://azure.microsoft.com/regions/services/). - **Quotas** - The [cores quotas](batch-quota-limit.md#resource-quotas) in your Batch account can limit the number of nodes of a given size you can add to a Batch pool. When needed, you can [request a quota increase](batch-quota-limit.md#increase-a-quota). ## Supported VM images Use one of the following APIs to return a list of Windows and Linux VM images currently supported by Batch, including the node agent SKU IDs for each image: - PowerShell: [Get-AzBatchSupportedImage](/powershell/module/az.batch/get-azbatchsupportedimage) - Azure CLI: [az batch pool supported-images](/cli/azure/batch/pool/supported-images) - [Batch Service APIs](batch-apis-tools.md#batch-service-apis): [List Supported Images](/rest/api/batchservice/pools/list-supported-images) For example, using the Azure CLI, you can obtain the list of supported VM images with the following command: ```azurecli-interactive az batch pool supported-images list ``` Images that have a `verificationType` of `verified` undergo regular interoperability validation testing with the Batch service by the Azure Batch team. The `verified` designation doesn't mean that every possible application or usage scenario is validated, but that functionality exposed by the Batch API such as executing tasks, mounting a supported virtual filesystem, etc. are regularly tested as part of release processes. Images that have a `verificationType` of `unverified` don't undergo regular validation testing but were initially verified to boot on Azure Batch compute nodes and transition to an `idle` compute node state. Support for `unverified` images isn't guaranteed. > [!TIP] > Avoid images with impending Batch support end of life (EOL) dates. These dates can be discovered via > the [`ListSupportedImages` API](/rest/api/batchservice/pools/list-supported-images), > [PowerShell](/powershell/module/az.batch/get-azbatchsupportedimage), or [Azure CLI](/cli/azure/batch/pool/supported-images). > For more information, see the [Batch best practices guide](best-practices.md) regarding Batch pool VM image selection. > [!TIP] > The value of the `AZ_BATCH_NODE_ROOT_DIR` compute node environment variable is dependent upon if the VM has a local temporary disk or not. See [Batch root directory location](files-and-directories.md#batch-root-directory-location) for more information. ## Next steps - Learn about the [Batch service workflow and primary resources](batch-service-workflow-features.md) such as pools, nodes, jobs, and tasks. - Learn about using specialized VM sizes with [RDMA-capable or GPU-enabled instances in Batch pools](batch-pool-compute-intensive-sizes.md).
Success! Branch created successfully. Create Pull Request on GitHub
Error: