Passer en revue le taux-erreurs de limitation

Effectué

Les demandes renvoient le code d’état 429 pour le code d’état trop volumineux du taux de demandes d’exception. Ce code d’état indique que vos demandes sur Azure Cosmos DB sont limitées au débit.

Lorsque le débit approvisionné est utilisé, le nombre d’unités de requête par seconde (UR/s) est défini pour la charge de travail. Les opérations (lecture, écriture, requêtes) sur le service consomment des unités de requête (UR). Si, dans une seconde donnée, les opérations consomment plus de unités de gestion que les RU/s approvisionnés, Azure Cosmos DB renvoie une exception 429. Passons en revue les trois raisons pour lesquelles cette exception a été rencontrée.

Le taux de demandes est élevé

Le taux de demandes est élevé constitue la raison la plus courante d’une exception 429. Passez en revue les occurrences de cette exception dans le rapport Code d’état Azure Cosmos DB Insight Requêtes totales par Code d’état sous l’onglet Requête. Examinez le pourcentage d’occurrences d’exceptions 429 par rapport aux requêtes réussies dans votre base de données.

Bien que vous puissiez voir des exceptions 429 dans vos graphiques, de nombreuses applications sont conçues pour réessayer une ou plusieurs fois si ce type d’exception est rencontré. Il est donc possible que vos applications gèrent la limitation sans retourner d’erreurs.

Aucune action n’est nécessaire, si votre analyse du graphique détermine que 1-5 % des demandes de charge de travail génèrent une exception 429 et que la latence de bout en bout est acceptable. Ce petit pourcentage d’exceptions est un signe sain de l’utilisation de RU/s.

Si le pourcentage de 429 exceptions est supérieur à 5 %, il est possible que les exceptions soient provoquées par une partition à chaud. Si un nombre relativement faible de clés de partition logique consomme une quantité beaucoup plus importante du total des unités de demande par seconde, cela peut créer une partition à chaud. Les partitions à chaud peuvent entraîner des exceptions 429 en ne distribuant pas le débit sur plusieurs partitions.

Pour déterminer si nous avons une partition à chaud, consultez le rapport Azure Cosmos DB insight intitulé Normalized RU Consumption (%) By PartitionKeyRangeID sous l'onglet Sortie. Dans ce rapport, PartitionKeyRangeID identifie chaque partition physique. Toute partition physique identifiée avec une consommation plus élevée significative sur ce graphique, peut être une partition à chaud. Cela est particulièrement vrai si la partition physique reste à 100 % en permanence et que les autres partitions physiques restent à des pourcentages plus faibles tout le temps.

Pour déterminer les types de demandes qui provoquent les exceptions 429, l’exécution d’une requête dans les Journaux de diagnostic Azure peut retourner le RU consommé par le type de demande. L’exemple de requête ci-dessous retourne la moyenne des unités de requête par minute par opération pour ces opérations avec 429 exceptions.

AzureDiagnostics
| where TimeGenerated >= ago(24h)
| where Category == "DataPlaneRequests"
| summarize throttledOperations = dcountif(activityId_g, statusCode_s == 429), totalOperations = dcount(activityId_g), totalConsumedRUPerMinute = sum(todouble(requestCharge_s)) by databaseName_s, collectionName_s, OperationName, requestResourceType_s, bin(TimeGenerated, 1min)
| extend averageRUPerOperation = 1.0 * totalConsumedRUPerMinute / totalOperations 
| extend fractionOf429s = 1.0 * throttledOperations / totalOperations
| order by fractionOf429s desc

Les solutions possibles à ce type d’exceptions 429 sont les suivantes :

  • S’il est déterminé que les exceptions 429 se produisent en raison d’une partition à chaud, envisagez de modifier la clé de partition.
  • Si les exceptions ne sont pas provoquées par une partition à chaud, l’ajout de la solution RU/s sur le conteneur peut être la solution.
  • Si les exceptions se produisent lors des demandes de document de requête, résolvez les problèmes liés aux requêtes avec des frais RU élevés.

Taux-limitation sur les demandes de métadonnées

Un volume élevé d’opérations de métadonnées peut provoquer des exceptions 429. Les opérations de métadonnées sont les opérations qui répertorient, créent, modifient ou suppriment une base de données ou des conteneurs. Il peut également s’agir d’opérations telles que l’interrogation du débit approvisionné actuel.

Examinez les occurrences de ce type d'exception 429 dans le rapport Azure Cosmos DB Insight Requêtes de métadonnées ayant dépassé la capacité (429s) sous l'onglet Système.

Si ce type de demande provoque 429 exceptions, il n’est pas recommandé d’incrémenter les RU/s approvisionnés. L’amélioration des RU/s approvisionnés n’aura aucun impact sur l’occurrence des exceptions. Il existe une limite de réserve système pour les demandes de métadonnées.

Solutions possibles pour les exceptions 429 provoquées par la demande de métadonnées :

  • Envisagez d’implémenter une stratégie d’interruption pour effectuer les demandes de métadonnées à un taux inférieur.
  • Utilisez une seule instance DocumentClient pour la durée de vie de votre application
  • Mettez en cache les noms des bases de données et des conteneurs.

Taux-limitation en raison d’une erreur de service temporaire

Si ce type de demande provoque 429 exceptions, il n’est pas recommandé d’incrémenter les RU/s approvisionnés. La simple amélioration des RU/s approvisionnés n’aura aucun impact sur l’occurrence des exceptions. La nouvelle tentative de la demande est la seule solution recommandée, si l’exception persiste, ouvrez un ticket de support à partir de la Portail Azure. Des erreurs de service temporaires peuvent également être signalées en même temps que vous obtenez 429 erreurs.