Problembehandlung für Azure Managed Redis (Vorschau)-Serverprobleme
In diesem Abschnitt wird die Behandlung von Problemen erläutert, die durch Bedingungen auf einem Azure Managed Redis (Vorschau)-Server oder auf einer VM verursacht werden, auf denen er gehostet wird.
- Hohe CPU-Auslastung
- Hohe Speicherauslastung
- Befehle mit langer Ausführungsdauer
- Serverseitige Bandbreitenbegrenzung
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 CPU-Auslastung
Eine hohe CPU-Auslastung bedeutet, dass der Redis-Server ausgelastet ist und mit Anforderungen nicht Schritt halten kann, was zu Timeouts führt. Überprüfen Sie die Metrik CPU für Ihren Cache, indem Sie im Ressourcenmenü auf der linken Seite die Option Überwachung auswählen. Sie sehen das CPU-Diagramm im Arbeitsbereich unter Insights. Oder fügen Sie unter Metriken einen Metriksatz für CPU hinzu.
Nachfolgend sind einige Optionen aufgeführt, die Sie bei hoher CPU-Auslastung in Betracht ziehen können.
Hochskalieren oder Verschieben auf eine höhere Leistungsstufe
Für eine höhere Leistung sollten Sie das Hochskalieren auf eine größere Cachegröße mit mehr CPU-Kernen in Betracht ziehen. Weitere Informationen finden Sie unter Leistungsstufen.
Schnelle Änderungen bei der Anzahl der Clientverbindungen
Weitere Informationen finden Sie unter Vermeiden von Spitzen bei Clientverbindungen.
Zeit- oder speicherintensive Befehle
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 Managed 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 CPU-Auslastung könnten 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:
- Die Speicherauslastung liegt nahe am maximalen Grenzwert für den Cache, oder
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.
Sie können mehrere Änderungen vornehmen, um die Speicherauslastung in einem gesunden Rahmen zu halten:
- Konfigurieren Sie eine Speicherrichtlinie , und legen Sie Ablauffristen für Ihre Schlüssel fest. Diese Richtlinie reicht möglicherweise nicht aus, wenn Fragmentierung vorliegt.
- Erstellen von Warnungen bei Metriken wie „verwendeter Arbeitsspeicher“, um frühzeitig über mögliche Beeinträchtigungen benachrichtigt zu werden.
- Skalieren Sie Ihr System auf einen größeren Cache mit größerer Arbeitsspeicherkapazität hoch. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Azure Managed Redis-Planung.
Empfehlungen zur Speicherverwaltung finden Sie unter Speicherverwaltung.
Befehle mit langer Ausführungsdauer
Weitere Informationen finden Sie unter Zeitintensive Befehle.
Serverseitige Bandbreitenbegrenzung
Weitere Informationen finden Sie unter Einschränkung der Netzwerkbandbreite.