Autonomous Database on Dedicated Exadata Infrastructure 中的计算管理
-
ECPU :ECPU 是计算资源的抽象度量。ECPU 基于从计算和存储服务器池弹性分配的核心数。您至少需要 2 个 ECPU 才能预配 Autonomous Database 。
预配新数据库、克隆现有数据库以及纵向扩展或收缩现有数据库的 CPU 资源时,CPU 计数默认为 2 个 ECPU,以 1 为增量。例如,超过 2 个的下一个可用 ECPU 数为 3。
您可以在基于 ECPU 的容器数据库上创建 Autonomous Database for Developers 实例。他们是免费的 Autonomous Database ,开发人员可以使用它来构建和测试新应用。有关详细信息,请参阅 Autonomous Database for Developers。
-
OCPU :OCPU 是计算资源的物理度量。OCPU 基于启用超线程的处理器的物理核心。
注意:
OCPU 是传统计费指标,已停用 Autonomous Database on Dedicated Exadata Infrastructure 。Oracle 建议对所有新部署和现有 Autonomous Database 部署使用 ECPU。有关更多信息,请参见 Oracle 支持文档 2998755.1 。预配新数据库、克隆现有数据库以及纵向扩展或收缩现有数据库的 CPU 资源时:
- CPU 计数默认为 1 个 OCPU,以 1 为增量。例如,高于 1 的下一个可用 OCPU 数为 2。
- 对于不需要整个 OCPU 的数据库,您可以以 0.1 OCPU 为增量分配从 0.1 到 0.9 的 OCPU。这样,您就可以在每个基础设施实例上超额预配 CPU 并运行更多数据库。有关更多详细信息,请访问 CPU Overprovisioning 。
自治 Exadata VM 集群的计算类型适用于其所有自治容器数据库和 Autonomous Database 实例。
计算管理
Autonomous Database 实例部署到自治 Exadata VM 集群 (AVMC) 中,并部署到其子自治容器数据库 (ACD) 中。Exadata 基础结构能够运行多个 AVMC。预配 AVMC 资源时分配的 CPU 将是其 Autonomous Database 可用的 CPU 总数。创建多个 AVMC 时,每个 AVMC 可以有自己的总 CPU 值。
在启动多 VM Autonomous Database 功能之前创建的 Exadata 基础结构 (EI) 资源的任何 Oracle Public Cloud 部署中,都无法使用多个 VM 自治 Exadata VM 集群。对于在多 AVMC 功能启动后创建的 X8M 代和以上 Exadata 基础结构资源,每个 AVMC 为您选择的 Exadata 系统配置的每台服务器创建一个群集节点。有关在不同用户组中限制这些 CPU 总数的信息,请参见 How Compartment Quotas Affect CPU Management 。
在 AVMC 或 ACD 级别,可用于创建数据库的 CPU 总数称为可用 CPU 。在 AVMC 资源级别,可用 CPU 将等于 CPU 总数,直到您创建第一个 ACD。创建 ACD 后,每个节点 8 个 ECPU 或 2 个 OCPU 会从 AVMC 的可用 CPU 分配给新的 ACD。因此,AVMC 资源级别的可用 CPU 会相应地减少。在该 ACD 中创建第一个 Autonomous Database 时,新数据库会使用最初分配的 CPU(8 个 ECPU 或每个节点 2 个 OCPU)。如果新数据库需要 8 个以上的 ECPU 或 2 个 OCPU,则会通过减少父 AVMC 级别的可用 CPU 来从父 AVMC 的可用 CPU 分配这些 CPU。当您在每个 ACD 中创建更多 ACD 并预配 Autonomous Database 时,可用的 CPU 值会相应地发生变化。
自治 Exadata VM 集群级别的可用 CPU 应用于其所有自治容器数据库。如果使用自动缩放功能,则容器数据库可用的 CPU 计数变得非常重要,如 CPU Allocation When Auto-Scaling 中所述。
同样,当您手动扩展 Autonomous Database 的 CPU 时,CPU 将从其父级 AVMC 级别的可用 CPU 使用,并且其值会相应地发生变化。
创建 an Autonomous Database 时,默认情况下,Oracle 会保留更多 CPU,以确保即使在节点发生故障时,数据库至少可以以 50% 的容量运行。预配 ACD 时,您可以将节点上保留的 CPU 百分比更改为 0% 或 25%。有关说明,请参见 Create an Autonomous Container Database 中的节点故障转移保留。计费中不包括这些额外的 CPU。
当 Autonomous Database 运行时,将按当前分配给数据库的 CPU 数量计费,无论是在初始创建时指定,还是在以后通过手动扩展操作指定。此外,如果为数据库启用了自动缩放,则系统会每秒对数据库自动纵向扩展所使用的任何额外 CPU 计费。有关如何衡量和计算开单的详情,请参阅: CPU 开单详细信息
Autonomous Database 停止后,不会向您开票。但是,分配给它的 CPU 数量不会返回到其父 AVMC 级别用于整体部署的可用 CPU。
当 Autonomous Database 终止或收缩时,分配给它的 CPU 数量不会立即返回到其父 AVMC 级别的可用 CPU,以执行整体部署。它们将继续包含在可用于其父容器数据库的 CPU 计数中,直到重新启动该父容器数据库。这些 CPU 称为可回收 CPU 。父 AVMC 级别的可回收 CPU 是其所有 ACD 的可回收 CPU 之和。当 ACD 重新启动时,它将所有可回收 CPU 返回到其父 AVMC 级别的可用 CPU。
重新启动自治容器数据库 (Autonomous Container Database,ACD) 是一种联机操作,在集群中以滚动方式执行,如果根据使用透明应用程序连续性的优秀实践进行配置,不会导致应用程序停机。
自动缩放时的 CPU 分配
通过自动缩放功能,Autonomous Database 最多使用的 CPU 和 IO 资源是其分配的 CPU 计数的三倍。如果 CPU 超额预配,如果 CPU 计数的三倍导致值小于 1,则该值将舍入到下一个整数。仅 OCPU 支持 CPU 超量预配。有关详细信息,请参阅 CPU 超量预配。
为了确保单个 Autonomous Database 无法自动扩展以使用池中可用的所有 CPU 进行整体部署,Oracle Autonomous Database on Dedicated Exadata Infrastructure 将自治容器数据库用作限制性控制。
在 ACD 中预配启用自动缩放的 Autonomous Database 时,如果该 ACD 中的可用 CPU 小于新数据库的 3X CPU 值,则该 ACD 中将保留其他 CPU。这些 CPU 称为保留的 CPU 。保留的 CPU 可确保 ACD 级别的可用 CPU 始终大于或等于该 ACD 中启用了自动缩放的最大数据库的 3x CPU 值。这些预留 CPU 仍可用于在此 ACD 中创建或手动扩展 Autonomous Database 。
自动扩展 Autonomous Database 时,Oracle Autonomous Database on Dedicated Exadata Infrastructure 会在其父容器数据库中查找空闲 CPU。如果空闲 CPU 可用,则向上扩展 Autonomous Database;否则,不会扩展。数据库本身具有大量空闲时间,因此自动缩放是一种在控制成本的同时最大程度地利用资源的方法,可以与其他自治容器数据库中的数据库保持良好的隔离。
如果用于自动缩放 Autonomous Database 的 CPU 来自另一个正在运行的 Autonomous Database,该数据库加载较少,因此未使用其所有分配的 CPU,Oracle Autonomous Database on Dedicated Exadata Infrastructure 会自动缩放自动缩放数据库,前提是该数据库在其他数据库上增加负载并且需要将其分配的 CPU 还原。
以自治容器数据库为例,托管四个运行 4-CPU 的自治数据库,所有这些数据库都启用了自动缩放。容器数据库可用于自动缩放的 CPU 计数为 12。如果其中一个数据库由于负载增加而需要通过 4 个 CPU 自动缩放,则 Oracle Autonomous Database on Dedicated Exadata Infrastructure 仅当一个或多个其他数据库加载轻且未使用所有分配的 CPU 时,才会执行自动缩放操作。此示例的计费成本至少为 16 个 CPU,因为所有四个 4 个 CPU 数据库始终都在运行。
相比之下,请考虑以下示例:自治容器数据库托管四个运行 2-CPU 自治数据库的自治容器数据库,所有自治数据库都启用了自动缩放,一个自治容器数据库停止了 8-CPU Autonomous Database。容器数据库可用于自动缩放的 CPU 计数再次为 16。如果一个正在运行的数据库由于超过 2 个 CPU 的负载增加而需要自动缩放,Oracle Autonomous Database on Dedicated Exadata Infrastructure 可以使用分配给已停止的 8 个 CPU 数据库的 CPU 执行操作。在此示例中,四个正在运行的数据库最多可以同时使用 8 个额外的 CPU,而不会占用彼此的已分配 CPU。此示例的计费成本至少为 8 个 CPU,因为只有四个 2 个 CPU 数据库始终在运行。
对于任何 Autonomous Data Guard 服务实例(本地或跨区域),额外定价是您在创建或显式扩展主服务实例时预留的 ECPU 或 OCPU 数,无论是否启用自动缩放。Autonomous Data Guard 备用服务实例上不会发生与自动扩展相关的 ECPU 或 OCPU 使用量。
区间限额如何影响 CPU 管理
通常,在创建或扩展 Autonomous Database 时,Oracle Autonomous Database on Dedicated Exadata Infrastructure 满足请求的能力仅取决于整个部署中单个 CPU 池中未分配的 CPU 的可用性。
但是,您可以使用 Oracle Cloud Infrastructure 的区间配额功能,按区间进一步限制可用于分别创建、手动缩放和自动缩放每种工作负载类型(数据仓库或事务处理)的自治数据库的 CPU 数量。
简而言之,您可以通过创建 set
、unset
和 zero
策略语句来使用区间限额功能,以限制给定区间中给定资源的可用性。有关详细信息和说明,请参阅区间限额。
VM 集群节点如何影响 CPU 管理
上述关于 CPU 管理和分配状态的讨论表明,您可以通过在预配 AVMC 资源时选择每个节点的 CPU 计数来创建多个自治 Exadata VM 集群 (AVMC) 资源。
本节将讨论有关 Oracle Cloud Infrastructure 如何将 Autonomous Database 置于 VM 集群节点中的细粒度详细信息,以及此类放置对自动缩放和并行处理的影响。
-
拆分阈值:Oracle Cloud Infrastructure 在多个节点之间打开 an Autonomous Database 的 CPU 值。对于 ECPU,默认拆分阈值为 64,对于 OCPU,默认拆分阈值为 16。但是,如果创建 VM 集群时 CPU 节点计数低于默认值,则默认值将覆盖到 VM 集群节点计数大小。在预配自治容器数据库 (ACD) 时,还可以使用“拆分阈值”属性显式设置拆分值。
使用 CPU 值小于拆分值创建的 Autonomous Database 将在集群中的一个节点上打开,使用 CPU 值大于拆分阈值创建的节点将在多个节点上打开。
-
假设您在 AVMC 中创建一个具有默认拆分阈值(64 个 ECPU)的 ACD,其中有两个节点,每个节点有 40 个 ECPU。由于 40 小于 64,因此 CPU 要求大于 40 的任何 Autonomous Database 都会拆分并跨多个节点打开,从而允许在这些节点之间发出 DML 请求。但是,如果创建的 AVMC 具有两个节点,每个节点 80 个 ECPU,则 ECPU 要求大于 64 的任何数据库都将在多个节点之间拆分和打开。
-
假设您在 VM 集群中创建 ACD,其中包含两个节点和每个节点 40 个 ECPU,并将拆分阈值明确设置为更小的值,例如 20 个 ECPU。CPU 要求大于 20 的任何 Autonomous Database 将拆分并跨多个节点打开,CPU 要求小于 20 的数据库将在单个节点上打开。
将拆分阈值设置为比默认值小得多的数字会增加在多个节点上打开较小 CPU 计数的数据库的机会,只要其 CPU 计数大于设置的拆分值即可。每当创建或缩放到大于此拆分值的大小时,都会在多个节点上打开数据库。当希望在多个节点上打开数据库以控制节点故障或计划内维护时的性能下降时,这非常有用。如果数据库在较大的 RAC 集群中的多个节点之间拆分,如果任何一个节点出现故障或发生调度的维护,则可以继续具有更高的性能,而不是降级到 50% 的性能概要文件。
-
假设您在具有两个节点和 40 个 ECPU 的 AVMC 中将拆分阈值显式设置为比缺省值高得多的值(例如 80 个 ECPU)。CPU 要求大于 40 的任何 Autonomous Database 将拆分并跨多个节点打开,CPU 要求小于 40 的数据库将在单个节点上打开。
将拆分阈值设置为比默认值高得多的值会导致数据库 DML 停留在单个 RAC 节点上并消除集群等待争用的可能性。
-
手动扩展 Autonomous Database 时,新 CPU 值将应用于现有拆分模型。也就是说,如果新值小于拆分阈值,它将在一个节点上打开,如果该值大于拆分阈值,它将在多个节点上打开。
-
-
分配关联性:确定 Autonomous Database 在超过拆分阈值后将打开的节点数。
例如,假定您创建了一个具有 4 个节点和 80 个 ECPU 的 AVMC 资源,并且在此 AVMC 中创建了一个 ACD,数据库拆分阈值设置为 64。创建 ECPU 要求为 120 的 Autonomous Database 将在多个节点之间拆分和打开数据库,使其大于 120(拆分阈值)。-
如果您的分发关联性设置为最小节点数,Oracle Cloud Infrastructure 将尝试在每个节点上具有 60 个 ECPU 的 2 个节点上创建数据库。如果无法实现,则将在 3 个节点之间拆分,每个节点 40 个 ECPU。如果无法实现这一点,Oracle Cloud Infrastructure 将尝试在 4 个节点之间打开数据库,每个节点 30 个 ECPU。
-
如果指定与最大节点数的分发关联,Oracle Cloud Infrastructure 将尝试在所有 4 个节点之间创建数据库拆分,每个节点具有 30 个 ECPU。如果无法实现,它将拆分为三个节点,每个节点具有 40 个 ECPU。如果无法实现这一点,Oracle Cloud Infrastructure 将尝试在 2 个节点之间打开数据库,每个节点 60 个 ECPU。
-
-
节点故障转移保留 (%) :在 AVMC 中为本地化故障和维护事件预留的相邻节点(数据库软件存在但未打开的节点)上的 CPU 数。节点故障转移保留适用于非拆分数据库部署。默认情况下,有 50% 的预留空间,这意味着在故障事件或维护期间,您将继续运行,但占分配的 CPU 的 50%。
-
对于利用率很低的非关键数据库或数据库,您可以将节点故障转移保留设置为更小的值,以便最终可以在专用 Exadata 基础结构上创建和合并更多数据库。
-
对于可接受维护期间停机的开发环境和数据库,可以将此值设置为零。
- 在某种程度上,还可以通过使用拆分阈值和分配关联性确保数据库在 2 个以上的节点之间拆分来控制节点故障转移保留。考虑将 Autonomous Database 分布在 4 个节点上的场景。通过在维护活动进行期间以滚动方式一次删除一个节点,您始终有 3 个节点仍在运行并占用流量,从而使性能保留有效达到 75%,而不是通常的 50%。对于更大的集群,您可以进一步推动此预留空间,例如 8 节点集群上的 87.5% 预留空间。
-
- 自动缩放:
- 对于不可并行化的 DML,可能会在单个 VM 集群节点内进行自动缩放;对于可并行化的 DML,可能会在多个 VM 集群节点之间进行自动缩放。
- 可以使用不可并行化的查询将多个并发会话路由到集群中的所有节点,从而有效地允许在多节点数据库中的所有节点之间自动缩放。
- 并行处理:
- SQL 语句的并行处理发生在打开的自治 Exadata VM 集群节点中,首先在单个节点中,然后发生在相邻的打开节点中,如上所述,这取决于自治 Exadata VM 集群的大小。
根据每个节点上的资源利用率;并非所有可用 CPU 的值都可用于预配或扩展 Autonomous Database 。例如,假设您有 20 个 CPU 在 AVMC 级别可用,但并非所有从 1 到 20 个 CPU 的值都可用于预配或扩展 Autonomous Database ,具体取决于节点级别的资源可用性。可用于预配或扩展 Autonomous Database 的 CPU 值列表称为可预配 CPU 。
-
GetAutonomousContainerDatabase 返回可用于在给定自治容器数据库中创建新 Autonomous Database 的可预配 CPU 值的列表。有关详细信息,请参阅 GetAutonomousContainerDatabase 。
-
GetAutonomousDatabase 返回可用于缩放给定 Autonomous Database 的可预配 CPU 值的列表。有关详细信息,请参阅 GetAutonomousDatabase 。