预置存储吞吐量 - Amazon Managed Streaming for Apache Kafka

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

预置存储吞吐量

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

您可以为代理kafka.m5.4xlarge大小或更大且存储容量为 10 GiB 或更大的集群指定预配置吞吐速率(以 MiB 每秒 MiB 为单位)。可以在创建集群期间指定预置吞吐量。您也可以为处于 ACTIVE 状态的集群启用或禁用预置吞吐量。

吞吐量瓶颈

代理吞吐量出现瓶颈的原因有很多:卷吞吐量、Amazon EC2 到 Amazon 的EBS网络吞吐量和 Amazon 的EC2出口吞吐量。您可以启用预置存储吞吐量来调整卷吞吐量。但是,代理吞吐量限制可能是由亚马逊EC2对亚马逊的EBS网络吞吐量和亚马逊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

测量存储吞吐量

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

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

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

配置更新

您可以在开启预MSK配置吞吐量之前或之后更新您的 Amazon 配置。不过,要想看到所需的吞吐量,您必须先执行这两个操作:更新 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 卷得到充分利用,通常约需六小时就能迁移到更新后的配置。

使用配置存储吞吐量 AWS Management Console

  1. 登录并在家中打开 Amazon https://console.aws.amazon.com/msk/主MSK机? AWS Management Console region=us-east-1#/home/。

  2. 选择创建集群

  3. 选择自定义创建

  4. 指定集群的名称。

  5. 存储部分中选择启用

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

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

  8. 选择下一步

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

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

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

使用配置存储吞吐量 AWS CLI

本节显示了一个示例,说明如何使用创建启用了 AWS CLI 预配置吞吐量的集群。

  1. 复制以下内容JSON并将其粘贴到文件中。用您账户中的值替换子网IDs和安全组 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文件的目录中运行以下 AWS CLI 命令。

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

使用 API 预置存储吞吐量

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