选择 Azure Batch 池中计算节点的 VM 大小和映像

为 Azure Batch 池选择节点大小时,可以从 Azure 提供的几乎所有 VM 大小中进行选择。 Azure 针对不同工作负荷,为 Linux 和 Windows VM 提供一系列大小。

支持的 VM 系列和大小

虚拟机配置中的池

虚拟机配置中的 Batch 池支持 Azure 中的几乎所有 VM 大小。 Batch 管理 API 可用于获取地区中支持的 VM 大小。 你可以使用下列方法之一返回地区中 Batch 支持的 VM 大小列表:

例如,使用 Azure CLI,可以使用以下命令获取特定 Azure 地区的 SKU 列表:

az batch location list-skus --location <azure-region>

提示

避免使用 Batch 支持终止 (EOL) 日期临近的 VM SKU/系列。 可以通过 ListSupportedVirtualMachineSkus APIPowerShellAzure CLI 发现这些日期。 有关详细信息,请参阅有关 Batch 池 VM SKU 选择的 Batch 最佳做法指南

使用第 2 代 VM 映像

一些 VM 系列(如 Mv2)只能与第 2 代 VM 映像一起使用。 第 2 代 VM 映像的指定方式与任何 VM 映像的指定方式一样,都是使用 sku 配置的 imageReference 属性;sku 字符串具有后缀,如 -g2-gen2。 若要获得 Batch 支持的 VM 映像列表(包括第 2 代映像),请使用“列表支持的映像”API、PowerShellAzure CLI

大小注意事项

  • 应用程序要求 - 考虑在节点上运行的应用程序的特征和要求。 考虑应用程序是否是多线程的以及其消耗的内存量等因素有助于确定最合适且经济高效的节点大小。 对于多实例 MPI 工作负荷或 CUDA 应用程序,请分别考虑使用专用 HPC VM 大小或启用 GPU 的 VM 大小。 有关详细信息,请参阅在 Batch 池中使用支持 RDMA 或启用了 GPU 的实例

  • 每个节点的任务数 - 通常,选择节点大小时会假设一个任务要在节点上运行一次。 但是,在作业执行期间,让多个任务(因此有多个应用程序实例)在计算节点上并行运行可能是很有利的。 在此情况下,往往会选择多核节点大小,以满足更高的并行任务执行需求。

  • 不同任务的负载级别 - 池中的所有节点都是相同大小。 如果打算运行具有不同系统要求和/或负载级别的应用程序,建议使用不同的池。

  • 区域可用性 - 某个 VM 系列或大小在创建 Batch 帐户的区域中可能无法使用。 若要检查大小是否可用,请参阅可用产品(按区域)

  • 配额 - Batch 帐户中的核心配额会限制可添加到 Batch 池的给定大小的节点数。 根据需要请求增加配额

支持的 VM 映像

使用以下 API 之一返回 Batch 当前支持的 Windows 和 Linux VM 映像列表,包括每个映像的节点代理 SKU ID:

例如,使用 Azure CLI,可以使用以下命令获取受支持的 VM 映像的列表:

az batch pool supported-images list

具有 verificationTypeverified 的映像会由 Azure Batch 团队进行定期的互操作性验证测试,确保与 Batch 服务的兼容性。 指定 verified 并不意味着验证每个可能的应用程序或使用方案,但批处理 API 公开的功能(如执行任务、装载支持的虚拟文件系统等)会定期测试发布过程。 verificationTypeunverified 的映像未进行定期验证测试,但最初已验证在 Azure Batch 计算节点上启动并转换为 idle 计算节点状态。 无法保证对 unverified 映像的支持。

提示

避免使用 Batch 支持终止 (EOL) 日期临近的映像。 可以通过 ListSupportedImages APIPowerShellAzure CLI 发现这些日期。 有关详细信息,请参阅有关 Batch 池 VM 映像选择的 Batch 最佳做法指南

提示

计算节点环境变量的值 AZ_BATCH_NODE_ROOT_DIR 取决于 VM 是否具有本地临时磁盘。 有关详细信息,请参阅 Batch 根目录位置

后续步骤