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

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

预置存储吞吐量

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

您可以为其中介类型的集群指定预配置吞吐率(以 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)

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

配置更新

当您为集群启用预配置吞吐量时,您可能看不到所需的吞吐量,除非您同时更新num.replica.fetchers配置参数。在默认的 Amazon MSK 配置中,该参数的值为 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

使用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 文件的目录中的 JSON 文件。

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

使用 API 预配存储吞吐量

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