Verwalten der Serverauslastung für Azure Cache for Redis

Wertgrößen

Der Entwurf Ihrer Clientanwendung bestimmt, ob Sie viele kleine Werte oder eine kleinere Anzahl größerer Werte speichern sollten. In Bezug auf den Redis-Server führen kleinere Werte zu einer besseren Leistung. Es wird empfohlen, die Wertgröße kleiner als 100 kB zu halten.

Wenn Ihr Entwurf erfordert, dass Sie größere Werte in der Azure Cache for Redis speichern, ist die Serverauslastung höher. In diesem Fall müssen Sie möglicherweise eine höhere Cacheebene verwenden, um sicherzustellen, dass die CPU-Auslastung den Durchsatz nicht einschränkt.

Auch wenn der Cache über eine ausreichende CPU-Kapazität verfügt, erhöhen größere Werte die Latenz. Befolgen Sie daher die Anleitung unter Konfigurieren geeigneter Timeouts.

Größere Werte erhöhen auch die Wahrscheinlichkeit einer Speicherfragmentierung. Befolgen Sie daher unbedingt die Anleitung unter Konfigurieren der Einstellung „maxmemory-reserved“.

Vermeiden von Spitzen bei Clientverbindungen

Das Erstellen und Schließen von Verbindungen ist ein aufwendiger Vorgang für Redis-Server. Wenn Ihre Clientanwendung innerhalb einer kurzen Zeit zu viele Verbindungen erstellt oder schließt, kann dies den Redis-Server belasten.

Wenn Sie viele Clientinstanzen instanziieren, um gleichzeitig eine Verbindung mit Redis herzustellen, sollten Sie erwägen, die neuen Verbindungserstellungen zu staffeln, um eine starke Spitze bei der Anzahl verbundener Clients zu vermeiden.

Arbeitsspeicherauslastung

Eine hohe Arbeitsspeicherauslastung auf dem Server erhöht die Wahrscheinlichkeit, dass das System Daten auf den Datenträger weitergeben muss. Dies führt zu Seitenfehlern, die das System erheblich verlangsamen können.

Vermeiden von zeitintensiven Befehlen

Der Redis-Server ist ein Single-Thread-Prozess. Befehle mit einer zeitintensiven Ausführungszeit können zu Wartezeiten oder Timeouts auf der clientseitigen Seite führen. Der Grund dafür ist, dass der Server nicht auf andere Anforderungen reagieren kann, während er mit einem Befehl mit einer langer Ausführungszeit beschäftigt ist. Weitere Informationen finden Sie unter Behandeln von serverseitigen Problemen bei Azure Cache for Redis.

Überwachungsserverauslastung

Wenn Sie sicherstellen möchten, dass Sie bei einer hohen Serverauslastung benachrichtigt werden, fügen Sie die Überwachung der Serverauslastung hinzu. Die Überwachung kann Ihnen helfen, Ihre Anwendungseinschränkungen zu verstehen. Anschließend können Sie proaktiv an der Entschärfung von Problemen arbeiten. Es wird empfohlen, die Serverauslastung unter 80 % zu halten, um negative Leistungseffekte zu vermeiden. Eine anhaltende Serverauslastung von über 80 % kann zu ungeplanten Failovern führen. Derzeit macht Azure Cache For Redis zwei Metriken in Insights unter Überwachung im Ressourcenmenü auf der linken Seite des Portals verfügbar: CPU- und Serverauslastung. Es ist wichtig zu verstehen, was von den einzelnen Metriken gemessen wird, wenn Sie die Serverauslastung überwachen.

Die CPU-Metrik gibt die CPU-Auslastung für den Knoten an, der den Cache hostet. Die CPU-Metrik umfasst auch Prozesse, die keine strengen Redis-Serverprozesse sind. Die CPU umfasst Hintergrundprozesse für Antischadsoftware und andere. Daher kann die CPU-Metrik manchmal ausschlagen und möglicherweise kein perfekter Indikator für die CPU-Auslastung für den Redis-Server sein.

Die Metrik Serverlast stellt die Last auf dem Redis-Server allein dar. Es wird empfohlen, die Metrik Serverauslastung anstelle von CPU zu überwachen.

Bei der Überwachung der Serverlast empfehlen wir außerdem, eher die maximalen Spitzen der Serverlast als den Durchschnitt zu untersuchen, da selbst kurze Spitzen Ausfälle und Befehlszeitüberschreitungen auslösen können.

Planen der Serverwartung

Stellen Sie sicher, dass Sie über genügend Serverkapazität verfügen, um Ihre Spitzenlast zu bewältigen, während ihre Cacheserver in Wartung sind. Testen Sie Ihr System, indem Sie die Knoten bei einer Spitzenlast neu starten. Weitere Informationen zum Simulieren der Bereitstellung eines Patches finden Sie unter Neustart.

Testen auf erhöhte Serverauslastung nach einem Failover

Bei Standard- und Premium-SKUs wird jeder Cache auf zwei Knoten gehostet. Die Clientverbindungen werden mit dem Load Balancer auf die beiden Knoten verteilt. Bei einer geplanten oder ungeplanten Wartung auf dem primären Knoten schließt der Knoten alle Clientverbindungen. In solchen Situationen können alle Clientverbindungen auf einem einzelnen Knoten landen, was zu einer erhöhten Serverauslastung auf dem verbleibenden Knoten führt. Es wird empfohlen, dieses Szenario zu testen. Starten Sie hierfür den primären Knoten neu, und vergewissern Sie sich, dass ein Knoten alle Clientverbindungen verarbeiten kann, ohne dass die Serverauslastung zu hoch wird.

Nächste Schritte