

# 竞价放置分数的工作原理
<a name="how-sps-works"></a>

在使用竞价放置分数功能时，您先指定竞价型实例的计算要求，然后 Amazon EC2 会返回竞价请求可能成功的区域的分数或可用区。每个区域或可用区的评分范围为 1 到 10，其中 10 表示竞价请求的成功性较高，1 则表示竞价请求的成功性较低。

**Topics**
+ [步骤 1：指定竞价需求](#sps-specify-requirements)
+ [步骤 2：筛选竞价放置分数响应](#get-sps)
+ [步骤 3：审查建议](#sps-recommendations)
+ [步骤 4：采纳建议](#sps-use-recommendations)

## 步骤 1：指定竞价需求
<a name="sps-specify-requirements"></a>

首先，请指定所需的目标竞价容量和计算要求，如下所示：

1. **指定目标竞价容量，也可以选择目标容量单位。**

   您可以根据实例数或 vCPU 数，或者根据以 MiB 为单位的内存量来指定所需的目标竞价容量。若根据 vCPU 数或内存量来指定目标容量，则必须将目标容量单位指定为 `vcpu` 或 `memory-mib`。否则即默认为实例数。

   若根据 vCPU 数或内存量指定目标容量，则您可以在计算总容量时使用这些单位。例如，若要混合使用不同大小的实例，则可以将目标容量指定为 vCPU 的总数。然后竞价放置分数功能会根据 vCPU 数来考虑请求中的每种实例类型，并计算 vCPU 总数，而不是在合计目标容量时计算实例总数。

   例如，假设您指定的总目标容量为 30 个 vCPU，并且您的实例类型列表中包括 c5.xlarge（4 个 vCPU）、m5.2xlarge（8 个 vCPU）和 r5.large（2 个 vCPU）。若要实现总计 30 个 vCPU，则您可以获得 2 个 c5.xlarge（2\$14 vCPU）、2 个 m5.2xlarge（2\$18 个 vCPU）和 3 个 r5.large（3\$12 个 vCPU）的组成。

1. **指定实例类型或实例属性。**

   您可以指定所用的实例类型，也可以指定计算要求所需的实例属性，然后由 Amazon EC2 来确定具有这些属性的实例类型。这称为基于属性的实例类型选择。

   您无法在同一竞价放置分数请求中同时指定实例类型和实例属性。

   如果您指定实例类型，则必须至少指定三种不同的实例类型，否则 Amazon EC2 将返回较低的竞价放置分数。同样，如果您指定实例属性，则其必须解析为至少三种不同的实例类型。

有关指定竞价需求的不同方法的示例，请参阅 [示例配置](work-with-spot-placement-score.md#sps-example-configs)。

## 步骤 2：筛选竞价放置分数响应
<a name="get-sps"></a>

Amazon EC2 会计算区域或区域内每个可用区的竞价放置分数，并返回您的竞价请求可能成功的区域或可用区的分数。默认为返回区域的分数。如果您计划在单个可用区中启动所有竞价容量，那么请求一个已评分的可用区列表会非常有帮助。

## 步骤 3：审查建议
<a name="sps-recommendations"></a>

每个区域或可用区的竞价放置分数是根据目标容量、实例类型的组成、历史和当前竞价使用趋势以及请求的时间来计算的。由于竞价容量不断波动，因此在不同时间计算同一竞价放置分数请求时，可能会产生不同的分数。

区域和可用区的评分范围为 1 至 10。分数为 10 表示您的竞价请求具有较高的成功性（但不能保证）。分数为 1 则表示您的竞价请求几乎没有成功的可能。即使是不同的区域或可用区，也可能会返回相同的分数。

如果返回的分数较低，则您可以编辑计算要求并重新计算分数。您还可以在一天中的不同时间为同一个计算要求请求竞价放置分数建议。

## 步骤 4：采纳建议
<a name="sps-use-recommendations"></a>

只有在竞价请求具有与竞价放置分数配置（目标容量、目标容量单位和实例类型或实例属性）完全相同的配置时，竞价放置分数才是相关的，并且被配置为使用 `capacity-optimized` 分配策略。否则，获得可用竞价型容量的可能性将与分数不一致。

尽管竞价放置分数可作为指导，但无法保证完全或部分满足您的竞价请求，所以您可以使用以下信息来获得最佳结果：
+ **使用相同的配置** – 仅当 Auto Scaling 组、EC2 机群或竞价型实例集中的竞价请求配置（目标容量、目标容量单位、实例类型或实例属性）与您为了获取竞价放置分数而输入的配置相同时，竞价放置分数才是相关的。

  如果您在竞价放置分数请求中使用了基于属性的实例类型选择，就可以使用基于属性的实例类型选择来配置 Auto Scaling 组、EC2 机群或竞价型实例集。有关更多信息，请参阅 [使用基于属性的实例类型选择创建一个混合实例组](https://docs.amazonaws.cn/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) 和 [指定 EC2 实例集或竞价型实例集的实例类型选择属性](ec2-fleet-attribute-based-instance-type-selection.md)。
**注意**  
如果您根据 vCPU 数或内存量指定了目标容量，并且在竞价放置分数配置中指定了实例类型，那么请注意，您当前无法在 Auto Scaling 组、EC2 机群或竞价型实例集中创建此配置。相反，您必须使用 `WeightedCapacity` 参数来手动设置实例权重。
+ **使用 `capacity-optimized` 分配策略** – 任何分数都假定您的实例集请求将被配置为使用所有可用区（用于跨区域请求容量）或单个可用区（若在一个可用区中请求容量）和用于成功请求竞价容量的 `capacity-optimized` 竞价型分配策略。如果您使用其它分配策略，例如 `lowest-price`，则获得竞价容量的可能性会与分数不一致。
+ **立即根据分数采取行动** – 竞价放置分数建议反映了请求时的可用竞价容量，由于竞价容量会发生波动，所以在不同时间计算相同的配置可能会得到不同的分数。尽管 10 分意味着竞价型容量请求具有较高的成功性，但不能保证成功，所以为了获得最佳效果，我们建议您立即根据分数采取行动。我们还建议您在每次尝试请求容量时都获取新的分数。