评估预置容量大小是否合适 - Amazon Keyspaces (for Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

评估预置容量大小是否合适

本节概述如何评估您的 Amazon Keyspaces 表中的配置大小是否合适。随着您的工作量不断变化,您其实可以利用您的放策略,安排自动缩放,并且您其实可以利用自动放策略,安排过度或者为表配置不足的风险。

本节所述过程归根到底是一个练习的过程,即在支持你的生产应用程序的 Amazon Keyspaces 表上,即在表上,即在表上,即在使用上 Amazon Keysp 为了了解应用程序的行为,你应该定义一个足够长的时间,即在预置一个足够长的时间段,即在预置应用程序的情况下,让它足够靠近使用过程归根到底是一个练习的过程。例如,如果您的应用程序表现出周模式,则不妨使用三周的周期来分析应用程序吞吐量需求。

如果您不知道从哪里开始,可根据至少一个月的使用数据来进行以下计算。

在评估容量时,您可以对于 Amazon Keyspaces 表进行配置读取容量单位 (RCU)写入容量单位 (WCU)独立。

如何从 Amazon Keyspaces () 中检索消费指标

要评估表容量,请监视以下内容 CloudWatch 指标并选择相应的维度来检索表格信息:

读取容量单位 写入容量单位

ConsumedReadCapacityUnits

ConsumedWriteCapacityUnits

ProvisionedReadCapacityUnits

ProvisionedWriteCapacityUnits

ReadThrottleEvents

WriteThrottleEvents

您可以通过 Amazon CLI 或 Amazon Web Services Management Console 来执行此操作。

Amazon CLI

相比之下,需要使用表消耗量指标来捕获一些历史数据点 CloudWatch API。

首先创建两个文件:write-calc.jsonread-calc.json。这些文件表示表格的计算。需要更新一些字段,如下表所示,以适应您的环境。

注意

如果表名在您的账户中不是唯一的,则还必须指定密钥空间的名称。

字段名称 定义 示例
<table-name> 您正在分析的表的名称 SampleTable
<period> 用于评估利用率目标的时间段,以秒为单位 对于 1 小时的周期,应指定:3600
<start-time> 评估间隔的开始时间,以 ISO8601 格式指定 2022-02-21T23:00:00
<end-time> 评估间隔的结束时间,以 ISO8601 格式指定 2022-02-22T06:00:00

写入计算文件检索指定日期范围内,预置和使用的 WCU 数量。它还会生成可用于分析的利用率。的全部内容write-calc.json文件应与以下示例中的类似。

{ "MetricDataQueries": [ { "Id": "provisionedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>"" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedWCU/PERIOD(consumedWCU)", "Label": "Consumed WCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedWCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

在制定决策时,读取的计算文件使用类似的指标。此文件检索指定日期范围内的预配和使用的 RCU 数量。的内容read-calc.json在制定决策时,文件应与之类似。

{ "MetricDataQueries": [ { "Id": "provisionedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedRCU/PERIOD(consumedRCU)", "Label": "Consumed RCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedRCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

创建文件后,您就可以开始检索使用率数据。

  1. 要检索写入使用率数据:

    aws cloudwatch get-metric-data --cli-input-json file://write-calc.json
  2. 要检索读取使用率数据:

    aws cloudwatch get-metric-data --cli-input-json file://read-calc.json

这两个查询的结果都是一系列 JSON 格式的数据点,可用于分析。结果取决于您指定的数据点数量、时间段和您自己的特定工作负载数据。在制定决策时,它可能类似于以下示例。

{ "MetricDataResults": [ { "Id": "utilizationPercentage", "Label": "Utilization Percentage", "Timestamps": [ "2022-02-22T05:00:00+00:00", "2022-02-22T04:00:00+00:00", "2022-02-22T03:00:00+00:00", "2022-02-22T02:00:00+00:00", "2022-02-22T01:00:00+00:00", "2022-02-22T00:00:00+00:00", "2022-02-21T23:00:00+00:00" ], "Values": [ 91.55364583333333, 55.066631944444445, 2.6114930555555556, 24.9496875, 40.94725694444445, 25.61819444444444, 0.0 ], "StatusCode": "Complete" } ], "Messages": [] }
注意

如果您指定短时段和长时间范围MaxDatapoints值,在脚本中默认设置为 24。这表示每小时一个数据点,每天 24 个数据点。

Amazon Web Services Management Console
  1. 登录到Amazon Web Services Management Console并导航到 CloudWatch 服务页面位于Name table theAmazon Web Services Management Console。选择相应的Amazon Web Services 区域如有必要。

  2. 在 Amazon Kor Apache Metrices (for)所有指标

  3. 这将打开一个包含两个面板的仪表板。顶部面板显示需要解决的问题,再开始绘制需要解决的问题,再开始绘制图表。选择 Amazon Keyspaces 面板。

  4. 选择表格指标子面板中的类别。这会显示您当前的表格Amazon Web Services 区域。

  5. 识别您的表名,方法是向下滚动菜单并选择写入操作指标:ConsumedWriteCapacityUnitsProvisionedWriteCapacityUnits

    注意

    本例中使用了写入操作指标,但您也可以使用这些步骤绘制读取操作指标图。

  6. 选择 Graphed metrics (2)[图表化指标 (2)]选项卡来修改公式。默认情况下 CloudWatch 选择统计函数平均值用于图表。

  7. 选中两个图表化指标(左侧的复选框)后,选择菜单 Add math(添加数学函数),然后选择 Common(常用),再选择 Percentage 函数。重复该过程两次。

    第一次选择百分比函数。

    第二次选择百分比函数。

  8. 此时,底部菜单中应该有四个指标。我们来进行 ConsumedWriteCapacityUnits 计算。为了保持一致,你需要将名称与你在Amazon CLI部分。单击 m1 ID 并将此值更改为 consumedWCU

  9. 将统计函数从 Average 改为 Sum。此操作会自动创建另一个名为异常检测波段。相比之下,可以先了解新生成的复选框来忽略此过程ad1 指标

  10. 重复步骤 8,将 m2 ID 重命名为 provisionedWCU。保留统计函数设置为 Average

  11. 选择表达式 1标记并将值更新为m1并将标签设置为消耗的 WCU

    注意

    确保您只选择了 m1(左侧的复选框)和 provisionedWCU 以正确可视化数据。更新公式,方法是单击 Details(详细信息)并将公式更改为 consumedWCU/PERIOD(consumedWCU)。此步骤还可能生成另一个异常检测波段metrics,但对于此过程的范围。

  12. 现在,你应该有两个图表:一个在表上,一个表示表上 WCU。

  13. 通过选择 Expression2 图形 (e2) 来更新百分比公式。将标签和 ID 重命名为 utilizationPercentage。重命名公式,以匹配 100*(m1/provisionedWCU)

  14. 在制定决策时,从所有指标中删除该复选框利用率百分比以可视化您的利用模式。默认间隔设置为 1 分钟。

您获得的结果取决于工作负载中的实际数据。利用率超过 100% 的间隔很容易出现低吞吐量容量错误事件。Amazon Keyspaces突发容量相比之下,应先了解需要解决的问题,再开始处理高于 100% 的问题,再开始处理低吞吐量的问题。

如何识别资源不足的 Amazon Keyspaces 表

对于大多数工作负载,表上,当表使用容量的 80% 以上时,表即被视为预置容量 80%。

突发容量是 Amazon Keyspaces 的一项功能,其实可以利用该功能,客户其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用其实可以利用自动放策略。创建容量暴增的目的是应对因特殊事件或使用量高峰而突然增加的流量。此突发容量有限,有关更多信息,请参阅在Areateeeeeeeeeeeee。使用容量大于预置容量时,如果您尝试使用容量,即在使用容量大于预置容量的情况下,您可能会遇到容量低吞吐量低的错误事件。当应用程序流量使用率靠近使用率为 80% 时,出现容量低容量容量错误事件的风险会大大增加。

80% 的利用率规则因数据的季节性和流量增长而异。考虑以下场景:

  • 如果您的流量在过去 12 个月中一直稳定在大约 90% 的利用率,那么您的表容量正合适

  • 如果您的应用程序流量在不到 3 个月内以每月 8% 的速度增长,那么您将达到 100% 利用率

  • 如果您的应用程序流量在略长于 4 个月内以每月 5% 的速度增长,那么您仍然将达到 100% 利用率

以上查询的结果可以说明您的利用率。将它们作为指导,来进一步评估其他指标,以帮助您在需要时选择增加表容量(例如:每月或每周增长率)。与您的运营团队合作,为您的工作负载和表定义一个合适的百分比。

相比之下,每天或每周分析数据,然后再开始分析数据。例如,在工作时间使用量激增的情况下(但工作时间以外使用量激增),但工作时间以外使用量激增(但工作时间以外使用量几乎为零),你可以从中受益调度应用程序自动缩放,即在其中指定预置容量增加使用容量,即在什么时候(以及一周中的几天)。相比之下,应该先了解需要解决的问题,再开始解决的问题,再开始解决的问题,再开始解决的问题,再开始解决的问题,再开始处理繁忙的问题。Amazon Keyspaces 表自动缩放如果您的季节性不那么明显,则进行配置。

如何识别过度配置的 Amazon Keyspaces 表

从上述脚本中获得的查询结果提供了执行某些初始分析所需的数据点。如果您的数据集在多个时间间隔内显示为利用率低于 20%,则您的表可能配置过度。要进一步确定是否需要减少 WCU 和 RCU 的数量,应重新查看间隔内的其他读数。

当您的表包含多个低使用量间隔时,您其实可以利用自动缩放策略,安排自动缩放,或者为表配置基于利用率的默认自动缩放策略。

如果您的工作负载具有低利用率与高限制比率 (马克斯 (ThrottleEvents) /分钟 (ThrottleEvents)在间隔内),当你的工作量非常激增时,即在特定的日期(或一天中),流量会显著增加,但除此之外一直很低。在这些情况下,使用可能会有帮助已还原的应用程序 Auto Scaling