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.
Errores de excepción de rendimiento aprovisionado
Los errores de excepción de rendimiento aprovisionado superado (HTTP 400) se producen cuando la tasa de solicitudes de un flujo de Kinesis supera los límites de rendimiento de una o más particiones. Cada partición tiene límites de capacidad de lectura y escritura específicos, y si se superan, se produce esta excepción. Las situaciones que conducen a esta excepción son: aumentos repentinos en el consumo o la ingesta de datos, una capacidad de partición insuficiente para el volumen de datos que se está procesando o una distribución desigual de las claves de partición.
Recomendaciones para gestionar las excepciones
-
Implemente mecanismos de retroceso exponencial y reintento.
-
Aumente el número de particiones para lograr un mayor rendimiento.
-
Asegúrese de que haya una distribución adecuada de las claves de partición.
-
Supervise las métricas de flujo.
Además, el uso del modo de capacidad bajo demanda de Kinesis permite ajustar automáticamente las cargas de trabajo y minimizar la aparición de esta excepción. Para obtener más información, consulte ¿Qué es AWS Fault Injection Service?
nota
Los problemas de distribución inadecuados están fuera de la capacidad de escalado automático del modo bajo demanda.
Cómo realizar un experimento básico
Utilice métricas de referencia: registre los patrones de rendimiento normales antes de realizar la prueba.
Cree un experimento: utilice la acción
aws:kinesis:inject-api-provisioned-throughput-exception.Configure la intensidad: comience con una limitación del 25 % de las solicitudes.
Supervise las respuestas: verifique la lógica de reintento con una reducción exponencial.
Valide el escalado: confirme que el escalado automático desencadene la activación.
Compruebe las alarmas: asegúrese de que las alarmas de
CloudWatchfuncionen según lo previsto.
Las aplicaciones deben implementar las estrategias, la supervisión de WriteProvisionedThroughputExceeded y las métricas de ReadProvisionedThroughputExceeded, y activar el escalado de las particiones cuando sea apropiado.
Detalles de la acción
-
Tipo de recurso: ARN del rol de IAM
-
Operaciones de destino:
PutRecord,PutRecords,GetRecords -
Código de error:
ProvisionedThroughputExceededException(HTTP 400) -
Descripción: simula escenarios en los que la tasa de solicitudes supera los límites de capacidad de la partición, pone a prueba la limitación de las aplicaciones y escala las respuestas
Parameters
-
ARN del rol de IAM: el rol que utiliza su aplicación para las operaciones de Kinesis Data Streams
-
Operaciones: operaciones de destino:
PutRecord,PutRecords,GetRecords -
Lista de recursos: los nombres de flujo específicos o los identificadores de particiones
-
Duración: la duración del experimento, que es de un minuto a 12 horas En la AWS FIS API, el valor es una cadena en formato ISO 8601. Por ejemplo, PT1 M representa un minuto. En la AWS FIS consola, se introduce el número de segundos, minutos u horas.
-
Intensidad: el porcentaje de solicitudes para limitar
Permisos necesarios
-
kinesis:InjectApiError
Ejemplo de plantilla de experimento
El siguiente ejemplo muestra una excepción de rendimiento aprovisionada para todas las solicitudes de hasta 5 transmisiones de Kinesis Data con la etiqueta especificada. AWS FIS selecciona aleatoriamente las transmisiones a las que desea afectar. El error se elimina después de 5 minutos.
{ "description": "Kinesis stream experiment", "targets": { "KinesisStreams-Target-1": { "resourceType": "aws:kinesis:stream", "resourceTags": { "tag-key": "tag-value" }, "selectionMode": "COUNT(5)" } }, "actions": { "kinesis": { "actionId": "aws:kinesis:stream-provisioned-throughput-exception", "description": "my-stream", "parameters": { "duration": "PT5M", "percentage": "100", "service": "kinesis" }, "targets": { "KinesisStreams": "KinesisStreams-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "roleArn": "arn:aws:iam::111122223333:role/role-name", "tags": {}, "experimentOptions": { "accountTargeting": "single-account", "emptyTargetResolutionMode": "fail" } }
Ejemplo de permisos de roles de experimentos
El siguiente permiso permite ejecutar las acciones aws:kinesis:stream-provisioned-throughput-exception y aws:kinesis:stream-expired-iterator-exception en un flujo específico que afecta al 50 % de las solicitudes.