管理 Amazon MSK 集群中标准代理的存储吞吐量 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

管理 Amazon MSK 集群中标准代理的存储吞吐量

有关如何使用 Amazon MSK 控制台、CLI 和 API 预置吞吐量的信息,请参阅为 Amazon MSK 集群中的标准代理预置存储吞吐量

Amazon MSK 代理吞吐量瓶颈和最大吞吐量设置

代理吞吐量出现瓶颈的原因有很多:卷吞吐量、Amazon EC2 到 Amazon EBS 的网络吞吐量以及 Amazon EC2 出口吞吐量。您可以启用预置存储吞吐量来调整卷吞吐量。但是,代理吞吐量限制可能是由 Amazon EC2 到 Amazon EBS 的网络吞吐量和 Amazon EC2 出口吞吐量造成。

Ama EC2 zon 出口吞吐量受使用器组数量和各使用器组使用器数量的影响。此外,对于较大代理大小,Amazon EC2 到 Amazon EBS 网络吞吐量和 Amazon EC2 出口吞吐量都更高。

对于 10GiB 或更大的卷大小,您可以将存储吞吐量预置为每秒 250MiB 或更高值。默认为每秒 250MiB。要预置存储吞吐量,您必须选择代理大小 kafka.m5.4xlarge 或更大(或 kafka.m7g.2xlarge 或更大),并且您可以指定最大吞吐量,如下表所示。

代理大小 最大存储吞吐量(MiB/s)
kafka.m5.4xlarge 593
kafka.m5.8xlarge 850
kafka.m5.12xlarge 1000
kafka.m5.16xlarge 1000
kafka.m5.24xlarge 1000
kafka.m7g.2xlarge 312.5
kafka.m7g.4xlarge 625
kafka.m7g.8xlarge 1000
kafka.m7g.12xlarge 1000
kafka.m7g.16xlarge 1000

衡量 Amazon MSK 集群的存储吞吐量

您可以使用 VolumeReadBytesVolumeWriteBytes 指标来衡量集群的平均存储吞吐量。使用这两个指标的总和得出以字节为单位的平均存储吞吐量。要获取集群的平均存储吞吐量,请将这两个指标设置为 SUM,将时长设置为 1 分钟,然后使用以下公式。

Average storage throughput in MiB/s = (Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / (60 * 1024 * 1024)

有关 VolumeReadBytesVolumeWriteBytes 指标的信息,请参阅PER_BROKER 级别监控

Amazon MSK 集群中预置存储的配置更新值

您可以在开启预置吞吐量之前或之后更新 Amazon MSK 配置。不过,要想看到所需的吞吐量,您必须先执行这两个操作:更新 num.replica.fetchers 配置参数和开启预置吞吐量。

在默认 Amazon MSK 配置中,num.replica.fetchers 的值为 2。要更新 num.replica.fetchers,您可以使用下表中的建议值。这些值仅供参考。建议您根据自己的用例调整这些值。

代理大小 num.replica.fetchers
kafka.m5.4xlarge 4
kafka.m5.8xlarge 8
kafka.m5.12xlarge 14
kafka.m5.16xlarge 16
kafka.m5.24xlarge 16

更新后的配置可能无法在 24 小时内生效,并且如果源卷未得到充分利用,则可能需要更长时间。不过,在迁移期间,过渡卷的性能至少等于源存储卷的性能。如果 1TiB 卷得到充分利用,通常约需六小时就能迁移到更新后的配置。