本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
主机要求和机队能力
功能和主机要求是互补的。舰队的能力说明了其工作人员所支持的内容,而步长的主机要求则说明了该步骤的需求。三个概念解释了它们是如何相互作用的:
-
要求与车队相匹配,而不是工作人员 ——调度程序将步骤的要求与每个机队的申报能力进行比较。它从不检查个体工人。
-
功能计划;只有服务管理的队列功能才能配置硬件 — 在服务管理的队列中,实例功能还决定启动哪些 Amazon EC2 实例类型。在客户管理的队列中,能力是自我申报的,不会改变您的机器。
-
需求从不提供硬件 — 主机要求过滤器队列可以运行该步骤。它不会启动更大的实例或更改自动扩展决策。
| 机制 | 你把它设置在哪里 | 作用 | 它不做什么 |
|---|---|---|---|
舰队实例功能(服务管理队列) |
舰队配置 ( |
配置硬件:一组可以启动的 Amazon EC2 实例类型。还宣传了舰队的调度能力 |
不在集合中选择一种规模 — 任何满足配置的实例类型都可以启动 |
车队工作人员能力(客户管理的车队) |
舰队配置 ( |
宣传车队的调度能力;一份自我申报的车队中每位工作人员提供的信息 |
不配置或验证硬件 — 更新声明不会更改您的计算机 |
步骤主机要求 |
作业模板 ( |
说明该步骤的需求;在创建任务以选择兼容舰队时与舰队能力相匹配 |
不会启动更大的实例、更改自动扩展决策或与个别工作人员进行匹配 |
Worker-advertised 能力 |
工作代理在启动时报告 |
记录工作人员报告的硬件,例如 |
不用于日程安排或硬件配置 |
舰队配置提供硬件
对于服务管理队列,instanceCapabilities配置(内存、vCPU、GPU 以及允许和排除的实例类型列表)定义了队列可以启动的实例类型集。当队列扩展时,该集合中的任何实例类型都可以启动,包括最小的实例类型。要保证硬件底限,请提高最低配置要求memoryMiB.min,例如或限制allowedInstanceTypes。有关更多信息,请参阅《Deadl ine Cloud 用户指南》中的Service-managed 舰队。
Service-managed 实例功能是配置硬件的唯一机制。在客户管理的队列中,workerCapabilities声明是自我报告的:它会公布你声明队列中每位工作人员提供的硬件,更新申报不会改变你的机器。有关更多信息,请参阅 创建由客户管理的车队。
主机要求选择舰队
创建任务时,调度程序会将每个步骤与与队列关联的队列的能力进行比较。hostRequirements满足要求的队列可以运行该步骤;如果没有队列,则标记NOT_COMPATIBLE该步骤。
匹配仅限舰队级别。例如,如果一个步骤需要 16 GiB 的内存,而一个队列声明的内存容量为 8—32 GiB,则该队列不兼容,即使该队列中的工作人员有 32 GiB。调度程序从不检查每位员工,因此应围绕有保障的硬件等级设计队列,让每个步骤的要求将其传送到正确的队列。有关更多信息,请参阅确定舰队兼容性和舰队设计最佳实践。
员工能力是信息性的
每个工作人员都会报告其在启动时检测到的硬件,例如amount.worker.memory。这些值用于可见性和调试。调度器不使用它们:兼容性来自舰队的声明能力,硬件来自舰队配置。特别是,诸如之类的要求amount.worker.memory不会导致队列启动更大的实例。将步数要求视为需求声明,将舰队配置视为保障。
自动缩放对任务进行计数
自动缩放器根据两个因素来调整服务管理队列的大小:为该队列准备的任务数量以及队列的最小和最大工作人员数量。它选择运行多少工作人员;队列配置决定每个工作人员的身份。有关更多信息,请参阅 实例集扩展。
主机要求是 Open Job 描述规范的一部分。有关完整的字段参考,请参阅 GitHub 网站上的