池最佳做法

本文介绍什么是池,以及如何最合理地配置池。 有关创建池的详细信息,请参阅池配置参考

注意

如果工作负载支持无服务器计算,Databricks 建议使用无服务器计算而不是池,以便充分利用始终可用且可缩放的计算优势。 请参阅连接到无服务器计算

池注意事项

创建池时,请考虑以下事项:

  • 根据目标工作负载,使用实例类型和 Azure Databricks 运行时创建池。
  • 如果可能,请使用现成实例填充池以降低成本。 仅使用现成池作为工作器节点。 驱动程序节点应使用按需实例。
  • 对于执行时间短和执行时间要求严格的作业,使用按需实例填充池。
  • 使用池标记和群集标记管理计费。
  • 预填充池,以确保实例在群集需要时可用。

根据工作负载创建池

可以通过为组织通常使用的每种实例类型和 Azure Databricks 运行时创建池来最大程度地减少实例获取时间。 例如,如果大多数数据工程群集使用实例类型 A,数据科学群集使用实例类型 B,分析群集使用实例类型 C,请为每种实例类型创建一个池。

使用现成实例池

如果驱动程序节点和工作器节点具有不同要求,则分别为每个节点使用不同的池。

Azure Databricks 建议不要为驱动程序节点使用现成实例。 如果为工作器节点使用现成池,请选择按需池作为“驱动程序类型”

对于执行时间短和执行时间要求严格的作业,将池配置为使用按需实例。 使用按需实例以防止获取的实例被现货市场上出价更高的买家抢走。

对于支持交互式开发的群集或优先考虑成本节约而不是可靠性的作业,将池配置为使用现成实例。

标记池以管理成本和计费

将池标记到适当的成本中心,这样可以管理成本和使用退款。 可以使用多个自定义标记将多个成本中心关联到一个池。 但是,在从池中创建群集时,请务必了解标记的传播方式。 池中的标记会传播到基础云提供商实例,但群集的标记不会传播。 将管理云提供商计算成本的退款所需的所有自定义标记应用于池。

池标记和群集标记均传播到 Azure Databricks 计费。 可以结合使用群集和池标记来管理 Azure Databricks 单位的退款。

若要了解详细信息,请参阅使用标记监视使用情况

配置池以控制成本

..azure-aws:

You can use the following configuration options to help control the cost of pools:

- Set the [Min Idle](/compute/pools.md#minimum-idle-instances) instances to 0 to avoid paying for running instances that aren’t doing work. The tradeoff is a possible increase in time when a cluster needs to acquire a new instance.
- Set the [Max Capacity](/compute/pools.md#maximum-capacity) based on anticipated usage. This sets the ceiling for the maximum number of used and idle instances in the pool. If a job or cluster requests an instance from a pool at its maximum capacity, the request fails, and the cluster doesn't acquire more instances. Therefore, Databricks recommends that you set the maximum capacity only if there is a strict instance quota or budget constraint.
- Set the [Idle Instance Auto Termination](/compute/pools.md#idle-instance-auto-termination) time to provide a buffer between when the instance is released from the cluster and when it’s dropped from the pool. Set this to a period that allows you to minimize cost while ensuring the availability of instances for scheduled jobs. For example, job A is scheduled to run at 8:00 AM and takes 40 minutes to complete. Job B is scheduled to run at 9:00 AM and takes 30 minutes to complete. Set the Idle Instance Auto Termination value to 20 minutes to ensure that instances returned to the pool when job A completes are available when job B starts. Unless they are claimed by another cluster, those instances are terminated 20 minutes after job B ends.

预填充池

若要充分利用池,可以预先填充新创建的池。 请在池配置中将最小空闲实例数设置为大于零。 或者,如果你遵循建议将此值设置为零,请使用初学者作业来确保新创建的池具有可供群集访问的实例。

使用初学者作业方法,可以安排在具有更严格的性能要求的作业之前或用户开始使用交互式群集之前,运行具有灵活执行时间要求的作业。 作业完成后,用于该作业的实例将释放回池。 将最小空闲实例设置设置为 0,并将空闲实例自动终止时间设置得足够高,以确保空闲实例仍可用于后续作业。

使用初学者作业使池实例可以启动、填充池,并可持续用于下游作业或交互式群集。