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

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

预配置存储吞吐量

亚马逊 MSK 经纪人保留存储量数据。当生产者向集群写入数据、在代理之间复制数据以及使用者读取不在内存中的数据时,会消耗存储 I/O。卷存储吞吐量是指向存储卷写入和读取数据的速率。预置存储吞吐量是指为集群中的代理指定该速率的能力。

对于代理类型为或更大的集群,如果存储量为 10 GiBkafka.m5.4xlarge 或更大,则可以以 MiB 每秒为单位指定预置吞吐速率。可以在集群创建期间指定预置吞吐量。您也可以为ACTIVE处于状态的集群启用或禁用预配置吞吐量。

吞吐量瓶颈

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

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

代理类型 Amazon 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配置参数和开启预配置吞吐量。

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

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

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

  2. 选择创建集群

  3. 选择 “自定义创建”。

  4. 指定集群的名称。

  5. 在 “存储” 部分中,选择 “启用”。

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

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

  8. 选择 Next(下一步)

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

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

  11. 查看群集设置,然后选择创建集群

使用配置存储吞吐量Amazon CLI

本节展示了如何使用创建启用预配置吞吐量的集群。Amazon CLI

  1. 复制以下 JSON 并将其粘贴到文件中。将 subnet 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.8.1", "NumberOfBrokerNodes": 2 }, "ClusterName": "provisioned-throughput-example" }
  2. 在上一步中保存 JSON 文件的目录中,键入以下Amazon CLI命令。

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

使用 API 配置存储吞吐量

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