预配置存储吞吐量 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

预配置存储吞吐量

Amazon MSK 代理将数据保存在存储卷上。当创建者向集群写入数据、在代理之间复制数据以及使用者读取不在内存中的数据时,会消耗存储 I/O。卷存储吞吐量是指可以向存储卷写入和读取数据的速率。预配置存储吞吐量是指为集群中的代理指定该速率的能力。

您可以为代理类型为 MiB 的集群指定预配置吞吐率(以 MiB /秒为单位)kafka.m5.4xlarge或更大,且存储卷大于或等于 10 GiB。可以在集群创建期间指定预配置吞吐量。您还可以为位于中的集群启用或禁用预配置吞吐量ACTIVE状态。

吞吐量瓶颈

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

EC2 出口吞吐量受使用者组和每个使用者组的使用者数量的影响。此外,对于较大的代理类型,EC2-EBS 网络吞吐量和 EC2 出口吞吐量都更高,如下表所示。

代理代理引擎 EC2-EBS 网络吞吐量 (Mbps)
kafka.m5.4xlarge 593.75
kafka.m5.8xlarge 850
kafka.m5.12xlarge 1187.5
kafka.m5.16xlarge 1700
kafka.m5.24xlarge 2375

测量存储吞吐量

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

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

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

配置更新

您可以在启用预配置吞吐量之前或之后更新您的 Amazon MSK 配置。但是,在执行以下两个操作之前,您将看不到所需的吞吐量:更新num.replica.fetchers配置参数并打开预配置吞吐量。

在默认的亚马逊 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 小时内不会生效,如果源卷未得到充分利用,则可能需要更长的时间。但是,在迁移期间,过渡卷的性能至少等于源存储卷的性能。一个完全利用的 1 TiB 卷通常需要大约 6 小时才能迁移到更新的配置。

使用预配置存储吞吐量Amazon Web Services Management Console

  1. 登录到Amazon Web Services Management Console,然后打开亚马逊 MSK 控制台https://console.aws.amazon.com/msk/home?region=us-east-1#/home/.

  2. 选择创建集群

  3. 选择自定义创建.

  4. 指定集群的名称。

  5. 存储部分,选择启用.

  6. 为每个代理的存储吞吐量选择一个值。

  7. 选择 VPC、区域和子网以及安全组。

  8. 选择 Next(下一步)。

  9. 在的底部安全步骤,选择下一步.

  10. 在的底部监控和标记步骤,选择下一步.

  11. 审核集群的设置,然后选择创建集群.

使用预配置存储吞吐量Amazon CLI

此部分显示的示例说明如何使用Amazon CLI创建启用了预配置吞吐量的集群。

  1. 将下面的 JSON 复制并粘贴到文件中。将子网 ID 和安全组 ID 占位符替换为您账户中的值。将该文件命名为cluster-creation.json然后保存。

    { "Provisioned": { "BrokerNodeGroupInfo":{ "InstanceType":"kafka.m5.4xlarge", "ClientSubnets":[ "Subnet-1-ID", "Subnet-2-ID" ], "SecurityGroups":[ "Security-Group-ID" ], "StorageInfo": { "EbsStorageInfo": { "VolumeSize": 10, "ProvisionedThroughput": { "Enabled": true, "VolumeThroughput": 250 } } } }, "EncryptionInfo": { "EncryptionInTransit": { "InCluster": false, "ClientBroker": "PLAINTEXT" } }, "KafkaVersion":"2.2.1", "NumberOfBrokerNodes": 2 }, "ClusterName": "provisioned-throughput-example" }
  2. 运行以下命令Amazon CLI命令从您在上一步中保存 JSON 文件的目录中。

    aws kafka create-cluster-v2 --cli-input-json file://cluster-creation.json

使用 API 配置存储吞吐量

要在创建集群时配置预配置存储吞吐量,请使用CreateClusterV2.