本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
预配置存储吞吐量
亚马逊 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 |
测量存储吞吐量
您可以使用VolumeReadBytes
和VolumeWriteBytes
指标来衡量集群的平均存储吞吐量。这两个指标的总和给出了以字节为单位的平均存储吞吐量。要获得集群的平均存储吞吐量,请将这两个指标设置为 SUM,将时段设置为 1 分钟,然后使用以下公式。
Average storage throughput in MiB/s = (Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / (60 * 1024 * 1024)
有关VolumeReadBytes
和VolumeWriteBytes
指标的信息,请参阅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
登录并打开亚马逊 MSK 控制台,网址为 https://console.aws.amazon.com/msk/home?region=us-east-1#/home/
。Amazon Web Services Management Console 选择创建集群。
选择 “自定义创建”。
指定集群的名称。
在 “存储” 部分中,选择 “启用”。
为每个代理的存储吞吐量选择一个值。
选择 VPC、区域和子网以及安全组。
选择 Next(下一步)。
在 “安全” 步骤的底部,选择 “下一步”。
在 “监控和标记” 步骤的底部,选择 “下一步”。
查看群集设置,然后选择创建集群。
使用配置存储吞吐量Amazon CLI
本节展示了如何使用创建启用预配置吞吐量的集群。Amazon CLI
复制以下 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" }在上一步中保存 JSON 文件的目录中,键入以下Amazon CLI命令。
aws kafka create-cluster-v2 --cli-input-json file://cluster-creation.json
使用 API 配置存储吞吐量
要在创建集群时配置预置的存储吞吐量,请使用 CreateClusterV2。