Behandeln von serverseitigen Problemen bei Azure Cache for Redis

In diesem Abschnitt wird die Behandlung von Problemen erläutert, die durch Bedingungen auf einem Azure Cache for Redis-Server oder auf einem der virtuellen Computer verursacht werden, auf denen er gehostet wird.

Hinweis

Etliche Problembehandlungsschritte in diesem Leitfaden enthalten Anleitungen zum Ausführen von Redis-Befehlen und zum Überwachen verschiedener Leistungsmetriken. Weitere Informationen und Anleitungen finden Sie in den Artikeln im Abschnitt Weitere Informationen .

Hohe Serverauslastung

Eine hohe Serverauslastung bedeutet, dass der Redis-Server ausgelastet ist und mit Anforderungen nicht Schritt halten kann, was zu Timeouts führt. Überprüfen Sie die Metrik Serverauslastung für Ihren Cache, indem Sie im Ressourcenmenü auf der linken Seite die Option Überwachung auswählen. Der Graph Serverauslastung wird im Arbeitsbereich unter Erkenntnisse angezeigt. Sie können auch unter Metriken einen Metriksatz zur Serverauslastung hinzufügen.

Im Anschluss sind einige Optionen aufgeführt, die Sie bei hoher Serverauslastung in Betracht ziehen können.

Hoch- oder Aufskalieren

Skalieren Sie auf, um weitere Shards hinzuzufügen, sodass die Last auf mehrere Redis-Prozesse verteilt wird. Erwägen Sie auch das Hochskalieren auf einen größeren Cache mit mehr CPU-Kernen. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Planung für Azure Cache for Redis.

Schnelle Änderungen bei der Anzahl der Clientverbindungen

Weitere Informationen finden Sie unter Vermeiden von Spitzen bei Clientverbindungen.

Zeit- oder speicherintensive Befehle

Dieser Abschnitt wurde verschoben. Weitere Informationen finden Sie unter Zeitintensive Befehle.

Skalierung

Skalierungsvorgänge sind CPU- und arbeitsspeicherintensiv, da sie das Verschieben von Daten auf Knoten und das Ändern der Clustertopologie umfassen können. Weitere Informationen finden Sie unter Skalieren.

Serverwartung

Wenn für Ihre Azure Cache for Redis-Instanz ein Failover ausgeführt wurde, werden alle Clientverbindungen vom Knoten, der ausgefallen ist, an den Knoten übertragen, der noch ausgeführt wird. Bei der Serverauslastung können aufgrund der höheren Verbindungsanzahl Spitzen auftreten. Sie können versuchen, Ihre Clientanwendungen neu zu starten, damit alle Clientverbindungen neu erstellt und auf die beiden Knoten verteilt werden.

Hohe Speicherauslastung

Eine Arbeitsspeicherauslastung auf dem Server kann zu verschiedenen Leistungsproblemen führen, die die Verarbeitung von Anforderungen verzögern. Wenn eine Arbeitsspeicherauslastung auftritt, werden Daten vom System auf den Datenträger ausgelagert, wodurch es zu einer erheblichen Verlangsamung des Systems kommen kann.

Im Folgenden finden Sie mögliche Ursachen für eine hohe Arbeitsspeicherauslastung:

  • Der Cache ist bis fast zu seiner maximalen Kapazität mit Daten gefüllt.
  • Der Redis-Server stellt eine hohe Fragmentierung des Arbeitsspeichers fest.

Eine Fragmentierung tritt wahrscheinlich auf, wenn ein Auslastungsmuster Daten mit sehr unterschiedlichen Größen speichert. So kann beispielsweise eine Fragmentierung auftreten, wenn Daten zwischen 1 KB und 1 MB groß sind. Wenn ein 1-KB-Schlüssel aus dem vorhandenen Arbeitsspeicher gelöscht wird, passt an dieselbe Stelle kein 1-MB-Schlüssel, was zu einer Fragmentierung führt. Wenn ein 1-MB-Schlüssel gelöscht und ein 1,5-MB-Schlüssel hinzugefügt wird, passt auch dieser nicht in den vorhandenen beanspruchten Arbeitsspeicher. Dies verursacht nicht genutzten freien Arbeitsspeicher und führt zu einer größeren Fragmentierung.

Wenn der Wert used_memory_rss größer als das 1,5-Fache der Metrik used_memory ist, tritt im Arbeitsspeicher eine Fragmentierung auf. Die Fragmentierung kann in folgenden Fällen Probleme verursachen:

  1. Die Speicherauslastung liegt nahe am maximalen Grenzwert für den Cache, oder
  2. UsedMemory_RSS ist höher als der Grenzwert für den maximalen Arbeitsspeicher und führt damit möglicherweise zu Seitenfehlern im Arbeitsspeicher.

Wenn ein Cache fragmentiert ist und unter hoher Arbeitsspeicherauslastung ausgeführt wird, führt das System ein Failover durch, um zu versuchen, den RSS-Arbeitsspeicher (Resident Set Size) wiederherzustellen.

Redis macht mithilfe des Befehls INFO die beiden Statistiken used_memory und used_memory_rss verfügbar, mit denen Sie dieses Problem identifizieren können. Sie können mithilfe des Portals diese Metriken anzeigen.

Überprüfen Sie, ob die Werte maxmemory-reserved und maxfragmentationmemory-reserved entsprechend festgelegt sind.

Sie können mehrere Änderungen vornehmen, um die Speicherauslastung in einem gesunden Rahmen zu halten:

Empfehlungen zur Speicherverwaltung finden Sie unter Speicherverwaltung.

Befehle mit langer Ausführungsdauer

Dieser Abschnitt wurde verschoben. Weitere Informationen finden Sie unter Zeitintensive Befehle.

Serverseitige Bandbreitenbegrenzung

Dieser Abschnitt wurde verschoben. Weitere Informationen finden Sie unter Einschränkung der Netzwerkbandbreite.

Zusätzliche Informationen