选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Amazon Keyspaces 中的容量管理错误故障排除

聚焦模式

本页内容

Amazon Keyspaces 中的容量管理错误故障排除 - Amazon Keyspaces(Apache Cassandra 兼容)

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

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

在使用无服务器容量时遇到问题? 以下介绍一些常见问题以及如何解决这些问题。

无服务器容量错误

本节简要介绍如何识别与无服务器容量管理相关的错误以及如何解决这些错误。例如,如果您的应用程序超出了预置的吞吐能力,则可能会发现容量不足事件。

由于 Apache Cassandra 是基于集群的软件,专为在节点队列上运行而设计,因此它没有与无服务器功能(例如吞吐能力)相关的异常消息。大多数驱动程序只能理解 Apache Cassandra 中的错误代码,因此 Amazon Keyspaces 使用相同的错误代码集来保持兼容性。

要将 Cassandra 错误映射到底层容量事件,您可以使用亚马逊 CloudWatch 监控相关的 Amazon Keyspaces 指标。导致客户端出错的容量不足事件可根据引起事件的资源分为三类:

要确定是哪个资源导致了返回客户端错误的容量不足事件,可以检查 Amazon Keyspaces 控制台中的控制面板。默认情况下,控制台在该表的 “容量” 选项卡的 “容量和相关 CloudWatch 指标” 部分中提供最常见容量和流量相关指标的汇总视图。

要使用亚马逊创建自己的控制面板 CloudWatch,请查看以下 Amazon Keyspaces 指标。

  • PerConnectionRequestRateExceeded – 向 Amazon Keyspaces 发出的超出了每个连接请求速率的限额。与 Amazon Keyspaces 的每个客户端连接每秒最多可支持 3000 个CQL请求。通过创建多个连接,每秒可以执行超过 3000 个请求。

  • ReadThrottleEvents – 对 Amazon Keyspaces 的请求超过了表的读取容量。

  • StoragePartitionThroughputCapacityExceeded — 对 Amazon Keyspaces 存储分区的请求超过了该分区的吞吐能力。Amazon Keyspaces 存储分区最多可以支持 1000 个跨更多分区的WCU/WRU per second and 3000 RCU/RRU per second. To mitigate these exceptions, we recommend that you review your data model to distribute read/write流量。

  • WriteThrottleEvents – 对 Amazon Keyspaces 的请求超过了表的写入容量。

要了解更多信息 CloudWatch,请参阅使用亚马逊监控亚马逊密钥空间 CloudWatch。有关 Amazon Keyspaces 的所有可用 CloudWatch 指标的列表,请参阅。Amazon Keyspaces 指标与维度

我从客户端驱动程序接收到 NoHostAvailable 容量不足的错误

您看到某个表出现 Read_TimeoutWrite_Timeout 异常。

重复尝试向容量不足的 Amazon Keyspaces 表写入或读取数据,可能会导致特定于驱动程序的客户端错误。

CloudWatch 用于监控您的预配置吞吐量和实际吞吐量指标,以及表的容量不足事件。例如,读取请求如果没有足够的吞吐容量,就会出现 Read_Timeout 异常,并发布到 ReadThrottleEvents 指标。写入请求如果没有足够的吞吐容量,就会出现 Write_Timeout 异常,并发布到 WriteThrottleEvents 指标。有关这些指标的更多信息,请参阅 Amazon Keyspaces 指标与维度

请考虑使用以下选项之一来解决这些问题:

如果您需要增加账户的默认容量限额,请参阅 Amazon Keyspaces(Apache Cassandra 兼容)限额

您看到与超出分区容量相关的错误。

当您看到错误 StoragePartitionThroughputCapacityExceeded 时,代表分区容量暂时超过了。这可能会由自适应容量或按需容量自动处理。我们建议您检查您的数据模型,以便将read/write traffic across more partitions to mitigate these errors. Amazon Keyspaces storage partitions can support up to 1000 WCU/WRU per second and 3000 RCU/RRU per second. To learn more about how to improve your data model to distribute read/write流量分配到更多分区,请参阅数据建模最佳实践:设计数据模型的建议

Write_Timeout 异常也可能是由于在同一逻辑分区中包含静态和非静态数据的并发写入操作速率过高造成的。如果预计流量会在同一逻辑分区中运行多个包含静态和非静态数据的并发写入操作,我们建议将静态和非静态数据分别写入。分别写入数据还有助于优化吞吐量成本。

您看到与超出连接请求速率相关的错误。

您看到的 PerConnectionRequestRateExceeded 是因为以下原因之一而引起。

  • 您可能没有为每个会话配置足够的连接。

  • 由于您的VPC端点权限配置不正确,因此您获得的连接数可能少于可用对等项。有关VPC终端节点策略的更多信息,请参阅将接口 VPC 端点用于 Amazon Keyspaces

  • 如果使用的是 4.x 驱动程序,请检查是否启用了主机名验证。默认情况下,该驱动程序启用TLS主机名验证。此配置会导致 Amazon Keyspaces 在驱动程序中显示为单节点集群。我们建议您关闭主机名验证。

我们建议您遵循以下最佳实践,以确保优化连接和吞吐量:

  • 配置CQL查询吞吐量调整。

    Amazon Keyspaces 每秒最多支持每个TCP连接 3,000 个CQL查询,但对驱动程序可以建立的连接数量没有限制。

    大多数开源 Cassandra 驱动程序都会建立一个连接到 Cassandra 的连接池,并在该连接池上对查询进行负载均衡。Amazon Keyspaces 向驱动程序公开 9 个对等 IP 地址。大多数驱动程序的默认行为是为每个对等 IP 地址建立一个连接。因此,使用默认设置的驱动程序的最大CQL查询吞吐量将为每秒 27,000 次CQL查询。

    要增大此数字,我们建议增加驱动程序在其连接池中维护的每个 IP 地址的连接数。例如,将每个 IP 地址的最大连接数设置为 2 会使驱动程序的最大吞吐量增加一倍,达到每秒 54,000 次CQL查询。

  • 优化您的单节点连接。

    默认情况下,大多数开源 Cassandra 驱动程序在建立会话时会与 system.peers 表中公布的每个 IP 地址建立一个或多个连接。但是,某些配置可能会导致驱动程序连接到单个 Amazon Keyspaces IP 地址。如果驱动程序正在尝试验证对等节点(例如 DataStax Java 驱动程序)SSL的主机名,或者当它通过VPC端点连接时,就会发生这种情况。

    要获得与连接到多个 IP 地址的驱动程序相同的可用性和性能,建议您执行以下操作:

我在数据导入期间收到写入超时错误

使用 cqlsh COPY 命令上传数据时,您收到超时错误。

Failed to import 1 rows: WriteTimeout - Error from server: code=1100 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 2, 'write_type': 'SIMPLE', 'consistency': 'LOCAL_QUORUM'}, will retry later, attempt 1 of 100

Amazon Keyspaces 使用 ReadTimeoutWriteTimeout 异常指示写入请求何时因吞吐容量不足而失败。为了帮助诊断容量不足异常,Amazon Keyspaces 在亚马逊上发布了以下指标。 CloudWatch

  • WriteThrottleEvents

  • ReadThrottledEvents

  • StoragePartitionThroughputCapacityExceeded

要解决数据加载期间容量不足的错误,请降低每个工作线程的写入速率或总摄取速率,然后重试上传各行。有关更多信息,请参阅 步骤 4:配置 cqlsh COPY FROM 设置。要获得更强大的数据上传选项,可以考虑使用DSBulkGitHub 存储库中提供的选项。有关 step-by-step说明,请参阅教程:使用 DSBulk 将数据加载到 Amazon Keyspaces

我看不到键空间或表的实际存储大小

您看不到键空间或表的实际存储大小。

要了解有关表存储容量的更多信息,请参阅在表级别评估您的成本。您还可以通过计算表中的行大小来估算存储大小。有关计算行大小的详细说明,请参阅估算 Amazon Keyspaces 中的行大小

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。