本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
预置存储吞吐量
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 |
测量存储吞吐量
您可以使用 VolumeReadBytes
和 VolumeWriteBytes
指标来衡量集群的平均存储吞吐量。使用这两个指标的总和得出以字节为单位的平均存储吞吐量。要获取集群的平均存储吞吐量,请将这两个指标设置为,SUM并将周期设置为 1 分钟,然后使用以下公式。
Average storage throughput in MiB/s = (Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / (60 * 1024 * 1024)
有关 VolumeReadBytes
和 VolumeWriteBytes
指标的信息,请参阅 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 卷得到充分利用,通常约需六小时就能迁移到更新后的配置。
使用配置存储吞吐量 Amazon Web Services Management Console
登录并在家中打开 Amazon https://console.aws.amazon.com/msk/主MSK机? Amazon Web Services Management Console region=us
-east-1#/home/。 选择创建集群。
选择自定义创建。
指定集群的名称。
在存储部分中选择启用。
为各代理的存储吞吐量选择一个值。
选择一个VPC、区域和子网以及一个安全组。
选择下一步。
在安全步骤的底部,选择下一步。
在监控和标记步骤的底部,选择下一步。
检查集群设置,然后选择创建集群。
使用配置存储吞吐量 Amazon CLI
本节显示了一个示例,说明如何使用创建启用了 Amazon CLI 预配置吞吐量的集群。
复制以下内容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" }从上一步中保存JSON文件的目录中运行以下 Amazon CLI 命令。
aws kafka create-cluster-v2 --cli-input-json file://cluster-creation.json
使用 API 预置存储吞吐量
要在创建集群时配置预配置的存储吞吐量,请使用 CreateClusterV 2。