Aprovisionamiento de rendimiento de almacenamiento - Transmisión gestionadada de Amazon para Apache Kafka

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aprovisionamiento de rendimiento de almacenamiento

Los agentes de Amazon MSK mantienen los datos de los volúmenes de almacenamiento. La E/S del almacenamiento se consume cuando los productores escriben en el clúster, cuando los datos se replican entre agentes y cuando los consumidores leen datos que no están en la memoria. El rendimiento del almacenamiento de volúmenes es la velocidad a la que se pueden escribir datos en un volumen de almacenamiento, y leerse desde este. El rendimiento del almacenamiento aprovisionado es la capacidad de especificar esa velocidad para los agentes del clúster.

Puede especificar la tasa de rendimiento aprovisionada en MiB por segundo para los clústeres cuyos agentes sean de tamaño kafka.m5.4xlarge o mayor y si el volumen de almacenamiento es de 10 GiB o superior. Es posible especificar el rendimiento aprovisionado durante la creación del clúster. También puede habilitar o deshabilitar el rendimiento aprovisionado para un clúster que tenga el estado ACTIVE.

Atascos del rendimiento

Hay varias causas de los atascos en el rendimiento de los agentes: el rendimiento del volumen, el rendimiento de la red de Amazon EC2 a Amazon EBS y el rendimiento de salida de Amazon EC2. Puede habilitar el rendimiento del almacenamiento aprovisionado para ajustar el rendimiento del volumen. Sin embargo, las limitaciones de rendimiento de los agentes pueden deberse al rendimiento de la red de Amazon EC2 a Amazon EBS y al rendimiento de salida de Amazon EC2.

El rendimiento de salida de Amazon EC2 se ve afectado por la cantidad de grupos de consumidores y de consumidores por grupos de consumidores. Además, tanto el rendimiento de la red de Amazon EC2 a Amazon EBS como el rendimiento de salida de Amazon EC2 son más altos para los corredores de mayor tamaño.

Para volúmenes de 10 GiB o más, puede aprovisionar un rendimiento de almacenamiento de 250 MiB por segundo o más. 250 MiB por segundo es el valor predeterminado. Para aprovisionar el rendimiento del almacenamiento, debe elegir el tamaño del corredor kafka.m5.4xlarge o superior (o kafka.m7g.2xlarge o superior) y puede especificar el rendimiento máximo tal como se muestra en la siguiente tabla.

tamaño del bróker Rendimiento máximo de almacenamiento (MiB/segundo)
kafka.m5.4xlarge 593
kafka.m5.8xlarge 850
kafka.m5.12xlarge 1 000
kafka.m5.16xlarge 1 000
kafka.m5.24xlarge 1 000
kafka.m7g.2xlarge 312,5
kafka.m7g.4xlarge 625
kafka.m7g. 8 x grande 1 000
kafka.m7g. 12 x grande 1 000
kafka.m7g. 16 x grande 1 000

Medición del rendimiento del almacenamiento

Puede utilizar las métricas VolumeReadBytes y VolumeWriteBytes para medir el rendimiento medio de almacenamiento de un clúster. La suma de estas dos métricas proporciona el rendimiento de almacenamiento medio en bytes. Para obtener el rendimiento de almacenamiento medio de un clúster, establezca estas dos métricas en SUM y el periodo en 1 minuto y, luego, utilice la siguiente fórmula.

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

Para obtener información sobre las métricas VolumeReadBytes y VolumeWriteBytes, consulte Supervisión de PER_BROKER.

Actualización de configuración

Puede actualizar la configuración de Amazon MSK antes o después de activar el rendimiento aprovisionado. Sin embargo, no verá el rendimiento deseado hasta que realice ambas acciones: actualice el parámetro de configuración num.replica.fetchers y active el rendimiento aprovisionado.

En la configuración predeterminada de Amazon MSK, num.replica.fetchers tiene un valor de 2. Para actualizar num.replica.fetchers, puede utilizar los valores sugeridos de la siguiente tabla. Estos valores son orientativos. Le recomendamos que ajuste estos valores en función del caso de uso.

tamaño del corredor num.replica.fetchers
kafka.m5.4xlarge 4
kafka.m5.8xlarge 8
kafka.m5.12xlarge 14
kafka.m5.16xlarge 16
kafka.m5.24xlarge 16

Es posible que la configuración actualizada no surta efecto hasta dentro de 24 horas y que tarde más si el volumen de origen no se utiliza por completo. Sin embargo, el rendimiento del volumen transitorio es como mínimo igual al rendimiento de los volúmenes de almacenamiento de origen durante el periodo de migración. Un volumen de 1 TiB totalmente utilizado tarda normalmente unas seis horas en migrar a una configuración actualizada.

Aprovisionamiento del rendimiento del almacenamiento mediante AWS Management Console

  1. Inicie sesión y abra la AWS Management Console consola de Amazon MSK en https://console.aws.amazon.com/msk/home?region=us-east-1#/home/.

  2. Elija Create cluster.

  3. Seleccione Creación personalizada.

  4. Especifique un nombre para el clúster.

  5. En la sección Almacenamiento elija Habilitar.

  6. Elija un valor en Rendimiento de almacenamiento por agente.

  7. Elija una VPC, zonas y subredes y un grupo de seguridad.

  8. Elija Siguiente.

  9. Al final del paso Seguridad, elija Siguiente.

  10. En final del paso Supervisión y etiquetas, elija Siguiente.

  11. Revise la configuración del clúster y seleccione Crear.

Aprovisionamiento del rendimiento del almacenamiento mediante el AWS CLI

En esta sección se muestra un ejemplo de cómo se puede utilizar AWS CLI para crear un clúster con el rendimiento aprovisionado activado.

  1. Copie el siguiente JSON y péguelo en un archivo. Sustituya los marcadores de posición de los ID de subred y de grupo de seguridad por valores de su cuenta. Asigne el nombre cluster-creation.json al archivo y guárdelo.

    { "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. Ejecuta el siguiente AWS CLI comando desde el directorio en el que guardaste el archivo JSON en el paso anterior.

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

Aprovisionamiento de rendimiento de almacenamiento mediante la API

Para configurar el rendimiento del almacenamiento aprovisionado al crear un clúster, usa CreateCluster la V2.