本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
预配置存储吞吐量
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 |
测量存储吞吐量
您可以使用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配置参数并打开预配置吞吐量。
在默认的亚马逊 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
登录到Amazon Web Services Management Console,然后打开亚马逊 MSK 控制台https://console.aws.amazon.com/msk/home?region=us-east-1#/home/
. 选择创建集群。
选择自定义创建.
指定集群的名称。
在存储部分,选择启用.
为每个代理的存储吞吐量选择一个值。
选择 VPC、区域和子网以及安全组。
选择 Next(下一步)。
在的底部安全步骤,选择下一步.
在的底部监控和标记步骤,选择下一步.
审核集群的设置,然后选择创建集群.
使用预配置存储吞吐量Amazon CLI
此部分显示的示例说明如何使用Amazon CLI创建启用了预配置吞吐量的集群。
将下面的 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" }运行以下命令Amazon CLI命令从您在上一步中保存 JSON 文件的目录中。
aws kafka create-cluster-v2 --cli-input-json file://cluster-creation.json
使用 API 配置存储吞吐量
要在创建集群时配置预配置存储吞吐量,请使用CreateClusterV2.