Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis - Überwachung der Speichernutzung

Arbeitsspeicher ist eine entscheidende Ressource für die Leistung von Redis. Der verwendete Speicher definiert die Gesamtzahl der Bytes, die von Redis mithilfe seines Zuordners zugewiesen werden (entweder Standard-libc, jemalloc oder ein alternativer Zuordner wie tcmalloc).

Sie können alle Metrikdaten zur Speichernutzung für eine Redis-Instanz erfassen, indem Sie „info memory“ ausführen.

 
127.0.0.1:6379> info memory
Memory
used_memory:1007280
used_memory_human:983.67K
used_memory_rss:2002944
used_memory_rss_human:1.91M
used_memory_peak:1008128
used_memory_peak_human:984.50K

Manchmal, wenn Redis ohne maximale Speicherbegrenzung konfiguriert ist, erreicht die Speichernutzung schließlich den Systemspeicher und der Server beginnt, „Out of Memory“-Fehler zu werfen. Zu anderen Zeiten ist Redis mit einem maximalen Speicherlimit, aber einer Noeviction-Richtlinie konfiguriert. Dies würde dazu führen, dass der Server keine Schlüssel entfernt, wodurch Schreibvorgänge verhindert werden, bis der Speicher freigegeben ist. Die Lösung für solche Probleme wäre die Konfiguration von Redis mit maximalem Speicher und einigen Eviction-Richtlinien. In diesem Fall beginnt der Server mit dem Entfernen von Schlüsseln mithilfe der Entfernungsrichtlinie, wenn die Speicherauslastung das Maximum erreicht.

Memory RSS (Resident Set Size) ist die Anzahl der Bytes, die das Betriebssystem Redis zugewiesen hat. Wenn das Verhältnis von „memory_rss“ zu „memory_used“ größer als ~1,5 ist, bedeutet dies eine Speicherfragmentierung. Der fragmentierte Speicher kann durch einen Neustart des Servers wiederhergestellt werden.