Beobachten von Ratenbegrenzungsereignissen

Abgeschlossen

In dieser Lerneinheit werden Methoden zum Ermitteln von Ratenbegrenzungsereignissen erläutert.

Bei Verwendung von Azure Cosmos DB for NoSQL gibt Azure Cosmos DB möglicherweise einen Fehler mit dem Statuscode 429 zurück. Dieser Fehlercode gibt an, dass die Ausnahme Anforderungsrate zu groß aufgetreten ist. Diese Ausnahme bedeutet, dass die Rate von Azure Cosmos DB-Anforderungen begrenzt wird.

Wenn ein bereitgestellter Durchsatz verwendet wird, ist die Anzahl der Anforderungseinheiten pro Sekunde (RU/s) für die Workload festgelegt. An den Dienst gerichtete Vorgänge (Lesen, Schreiben, Abfragen) verbrauchen Anforderungseinheiten (Request Units, RUs). Wenn die Vorgänge in einer Sekunde mehr RUs verbrauchen als die bereitgestellten RU/s, gibt Azure Cosmos DB eine 429-Ausnahme zurück.

Es gibt drei Hauptgründe für eine 429-Ausnahme:

  • Die Anforderungsrate ist groß.
  • Die Anforderung wurde aufgrund einer hohen Rate von Metadatenanforderungen nicht abgeschlossen.
  • Die Anforderung wurde aufgrund eines vorübergehenden Dienstfehlers nicht abgeschlossen.

In den folgenden Abschnitten werden die einzelnen Gründe behandelt und beschrieben, wie sie festgestellt werden.

Anforderungsrate ist hoch

Von den drei Ursachen für diese Ausnahme ist diese die häufigste. Azure Cosmos DB gibt diese Ausnahme zurück, wenn die RUs durch Vorgänge für Daten die bereitgestellten RU/s überschreiten.

So untersuchen Sie die mögliche Ursache für eine 429er Ausnahme:

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Cosmos DB-Konto.
  2. Schauen Sie sich im Menü Insights>-Anforderung die Diagramme zur Gesamtanzahl der Anforderungen nach Statuscode an, und suchen Sie nach Vorkommen der 429er Ausnahme.
  3. Filtern Sie die Diagramme bei Bedarf nach Zeitbereich und Datenbank nach der gewünschten Zeitspanne und Datenbank.

Bei den meisten Anwendungen ist es normal, dass für weniger als 5 % der Anforderungen eine 429-Ausnahme auftritt.

Diagram that shows the charts by Status code and Throttled Request (429 exceptions).

Wenn der Prozentsatz der 429-Ausnahmen größer als 5 % ist, können die Ausnahmen durch eine Partition mit übermäßig hoher Last verursacht werden.

Um festzustellen, ob der Datenbankzugriff ausgehend von einer Partition mit übermäßig hoher Last erfolgt, überprüfen Sie im Azure-Portal für das Azure Cosmos DB-Konto unter Erkenntnisse > Durchsatz das Diagramm Normalisierter RU-Verbrauch (%) nach PartitionKeyRangeID.

Diagram that shows the charts by throughput of a hot partition.

Ratenbegrenzung für Metadatenanforderungen

Eine 429-Ausnahme kann auftreten, wenn Vielzahl von folgenden Metadatenvorgänge durchgeführt wird:

  • Erstellen, Lesen, Aktualisieren oder Löschen eines Containers oder einer Datenbank
  • Auflisten von Datenbanken oder Containern in einem Cosmos-Konto
  • Abfragen des aktuell bereitgestellten Durchsatzes

Um festzustellen, ob 429-Ausnahmen durch Metadatenanforderungen verursacht werden, überprüfen Sie im Azure-Portal für das Azure Cosmos DB-Konto unter Erkenntnisse > System das Diagramm Metadatenanforderungen, die die Kapazität überschritten haben (429s).

Diagram that shows the charts for metadata access.

Ratenbegrenzung aufgrund eines vorübergehenden Dienstfehlers

Wenn Sie im Laufe der Zeit feststellen, dass 429-Ausnahmen auftreten, werden im Diagramm Gesamtanzahl der Anforderungen nach Statuscode unter Erkenntnisse > Anforderung möglicherweise auch 503-Fehler gemeldet. Diese Ausnahmen können darauf hinweisen, dass die 429-Ausnahmen aufgrund von vorübergehenden Dienstfehlern auftreten.