Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel befassen wir uns mit der effektiven Speicherverwaltung eines Azure verwalteten Redis-Caches.
Verstehen, wie die Speicherauslastung gemeldet wird
Die Metrik "Verwendeter Speicher " meldet den gesamten von Ihrer Datenbank verbrauchten Arbeitsspeicher, einschließlich aller Shards. Wenn hohe Verfügbarkeit aktiviert ist, enthält diese Metrik den Arbeitsspeicher, der sowohl von primären als auch replikatshards verwendet wird. Dies bedeutet, dass der gemeldete Wert ungefähr doppelt so groß wie das tatsächliche Dataset sein kann.
Wenn Sie beispielsweise 10 GB Daten in einem Cache mit aktivierter Hoher Verfügbarkeit speichern, meldet die Metrik " Verwendeter Speicher " etwa 20 GB.
Die Metrik "Verwendeter Speicher " enthält keine Speicherfragmentierung. Die tatsächliche Auslastung des physischen Arbeitsspeichers auf dem Server kann aufgrund des Zuweisungsaufwands höher sein. Weitere Informationen dazu, was jede Metrik enthält, finden Sie in der Referenz zu Überwachungsdaten.
Schätzen des Arbeitsspeichers für die Kapazitätsplanung
Berücksichtigen Sie bei der Planung des benötigten Arbeitsspeichers diese Faktoren, die nicht nur die rohe Größe Ihrer Werte überschreiten:
- Aufwand pro Schlüssel: Jeder in Redis gespeicherte Schlüssel enthält interne Metadaten (Zeiger, Typinformationen, Ablaufverfolgung). Dieser Aufwand beträgt in der Regel 50 bis 100 Bytes pro Schlüssel, abhängig von der Länge und dem Werttyp des Schlüssels. Bei einer großen Anzahl kleiner Schlüssel kann dieser Aufwand erheblich sein.
- Schlüsselnamen: Der Speicher, der zum Speichern Ihrer Schlüsselnamen verwendet wird, summiert sich bei großflächigem Einsatz. Kürzere Schlüsselnamen tragen dazu bei, die Speicherauslastung zu verringern.
- Ablaufverfolgung: Schlüssel mit einem TTL-Satz verbrauchen zusätzlichen Arbeitsspeicher für die Ablaufbuchhaltung.
- Hochverfügbarkeitsreplikation: Mit aktivierter Hoher Verfügbarkeit wird das Dataset repliziert. Die Metrik "Verwendeter Speicher " spiegelt sowohl den primären als auch den Replikatspeicher wider, aber die SKU-Speichergrenze berücksichtigt dies bereits. Sie müssen keine größere SKU für die Replikation auswählen – wählen Sie eine SKU basierend auf der tatsächlichen Datasetgröße aus.
Verwenden Sie den Befehl "Redis MEMORY USAGE ", um die genauen Speicherkosten eines bestimmten Schlüssels zu überprüfen:
MEMORY USAGE <your_key_name>
Dieser Befehl gibt die Gesamtanzahl der von einem Schlüssel verbrauchten Bytes zurück, einschließlich des gesamten internen Overheads. Verwenden Sie diese Informationen, um Ihre Pro-Key-Speicherschätzungen anhand der tatsächlichen Nutzung zu überprüfen.
Ausscheidungsrichtlinie
Wählen Sie eine Entfernungsrichtlinie aus, die für Ihre Anwendung geeignet ist. Die Standardrichtlinie für Azure verwaltete Redis ist volatile-lru. Dies bedeutet, dass nur Schlüssel, die einen TTL-Wert festgelegt haben, der mit einem Befehl wie EXPIRE gesetzt wurde, zur Entfernung berechtigt sind. Wenn keine Schlüssel einen TTL-Wert haben, entfernt das System keine Schlüssel. Wenn das System zulassen soll, dass ein Schlüssel bei Speicherknappheit entfernt wird, sollten Sie die allkeys-lru Richtlinie in Betracht ziehen.
Ablauf von Schlüsseln
Legen Sie einen Ablaufwert für Ihre Schlüssel fest. Bei einem Ablauf werden Schlüssel proaktiv entfernt, anstatt zu warten, bis die Speicherauslastung hoch ist. Wenn das Entfernen von Daten aufgrund von Speicherengpässen erfolgt, kann dies zu einer höheren Belastung Ihres Servers führen. Weitere Informationen finden Sie in der Dokumentation für die Befehle EXPIRE und EXPIREAT.
Überwachen der Arbeitsspeicherauslastung
Es wird empfohlen, die Metrik " Used Memory Percentage " anstelle des rohen verwendeten Arbeitsspeichers zu überwachen. Die Prozentmetrik ist bereits für die Gesamtspeichergrenze Ihrer SKU einschließlich der Replikation mit hoher Verfügbarkeit vorgesehen, sodass Sie eine einfache Übersicht darüber erhalten, wie nah Sie an der Kapazität sind, ohne sich mental an den Replikatspeicher anpassen zu müssen.
Fügen Sie Benachrichtigungen für Verwendeter Arbeitsspeicherprozentsatz hinzu, um sicherzustellen, dass Ihnen der Arbeitsspeicher nicht ausgeht und Sie die Möglichkeit haben, den Cache rechtzeitig zu skalieren, bevor Probleme auftreten. Wenn Der Prozentsatz des verwendeten Arbeitsspeichers konsistent über 75%ist, sollten Sie den Arbeitsspeicher erhöhen, indem Sie auf eine höhere Ebene skalieren. Informationen zu Ebenen finden Sie unter Architektur.