Aprovisionamiento de rendimiento de almacenamiento - Transmisión gestionada 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

MSKLos corredores de Amazon conservan los datos sobre 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

Existen múltiples causas de los cuellos de botella en el rendimiento de los corredores: el rendimiento del volumen, el rendimiento de la red de Amazon a EC2 Amazon y el EBS 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 corredores pueden deberse al rendimiento de la EBS red de Amazon EC2 a Amazon y al rendimiento de EC2 salida de Amazon.

El rendimiento de EC2 salida de Amazon se ve afectado por la cantidad de grupos de consumidores y de consumidores por grupo de consumidores. Además, tanto el rendimiento de la EBS red Amazon EC2 a Amazon como el rendimiento de EC2 salida de Amazon 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 de corredor kafka.m5.4xlarge o superior (o kafka.m7g.2xlarge o superior) y puede especificar el rendimiento máximo tal y 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 promedio de un clúster, establezca estas dos métricas y el período en 1 minuto SUM y, a continuación, 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

Puedes actualizar la MSK configuración de Amazon 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 MSK configuración predeterminada de Amazon, 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. ¿Iniciar sesión en la AWS Management Console MSK consola de Amazon y abrirla en https://console.aws.amazon.com/msk/casa? 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 aVPC, zonas y subredes y un grupo de seguridad.

  8. Elija Next (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 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. Copia lo siguiente JSON y pégalo en un archivo. Sustituya los marcadores de posición de los identificadores de subred IDs y grupo de seguridad por los 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. Ejecute el siguiente AWS CLI comando desde el directorio en el que guardó el JSON archivo 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, utilice CreateCluster la V2.