Rozwiązywanie problemów z usługą Azure Cache for Redis po stronie serwera
W tej sekcji omówiono rozwiązywanie problemów spowodowanych przez warunki na serwerze usługi Azure Cache for Redis lub dowolnym z hostowanych przez nią maszyn wirtualnych.
- Duże obciążenie serwera
- Wysokie użycie pamięci
- Długotrwałe polecenia
- Ograniczenie przepustowości po stronie serwera
Uwaga
Kilka kroków rozwiązywania problemów w tym przewodniku zawiera instrukcje dotyczące uruchamiania poleceń usługi Redis i monitorowania różnych metryk wydajności. Aby uzyskać więcej informacji i instrukcji, zobacz artykuły w sekcji Dodatkowe informacje .
Duże obciążenie serwera
Wysokie obciążenie serwera oznacza, że serwer Redis jest zajęty i nie może nadążyć za żądaniami, co prowadzi do przekroczenia limitu czasu. Sprawdź metryki Obciążenie serwera w pamięci podręcznej, wybierając pozycję Monitorowanie z menu Zasób po lewej stronie. Wykres Ładowanie serwera zostanie wyświetlony w okienku roboczym w obszarze Szczegółowe informacje. Możesz też dodać metrykę ustawioną na Wartość Obciążenie serwera w obszarze Metryki.
Poniżej przedstawiono kilka opcji, które należy wziąć pod uwagę w przypadku dużego obciążenia serwera.
Skalowanie w górę lub skalowanie w poziomie
Skaluj w poziomie, aby dodać więcej fragmentów, dzięki czemu obciążenie jest dystrybuowane w wielu procesach usługi Redis. Rozważ również skalowanie w górę do większego rozmiaru pamięci podręcznej przy użyciu większej liczby rdzeni procesora CPU. Aby uzyskać więcej informacji, zobacz Azure Cache for Redis planning FAQ (Planowanie usługi Azure Cache for Redis — często zadawane pytania).
Szybkie zmiany liczby połączeń klientów
Aby uzyskać więcej informacji, zobacz Unikanie skoków połączeń klienta.
Długotrwałe lub kosztowne polecenia
Ta sekcja została przeniesiona. Aby uzyskać więcej informacji, zobacz Długotrwałe polecenia.
Skalowanie
Operacje skalowania intensywnie korzystają z procesora CPU i pamięci, ponieważ mogą obejmować przenoszenie danych wokół węzłów i zmienianie topologii klastra. Aby uzyskać więcej informacji, zobacz Skalowanie.
Konserwacja serwera
Jeśli usługa Azure Cache for Redis przeszła tryb failover, wszystkie połączenia klienta z węzła, które uległy awarii, zostaną przeniesione do węzła, który jest nadal uruchomiony. Obciążenie serwera może wzrosnąć z powodu zwiększonych połączeń. Możesz spróbować ponownie uruchomić aplikacje klienckie, aby wszystkie połączenia klienckie zostały ponownie utworzone i redystrybuowane między dwoma węzłami.
Wysokie użycie pamięci
Duże użycie pamięci na serwerze może prowadzić do różnych problemów z wydajnością, które opóźniają przetwarzanie żądań. Gdy pojawia się duże użycie pamięci, system zaczyna stronicować dane na dysku, co powoduje znaczne spowolnienie systemu.
Poniżej przedstawiono niektóre możliwe przyczyny użycia pamięci:
- Pamięć podręczna jest wypełniona danymi w pobliżu maksymalnej pojemności
- Serwer Redis widzi wysoką fragmentację pamięci
Fragmentacja może być spowodowana tym, że wzorzec obciążenia przechowuje dane o dużym rozmiarze. Na przykład fragmentacja może wystąpić, gdy dane są rozłożone na 1 KB i 1 MB rozmiaru. Gdy klucz 1 KB zostanie usunięty z istniejącej pamięci, klucz 1 MB nie może zmieścić się w nim powodując fragmentację. Podobnie, jeśli klucz 1 MB zostanie usunięty i zostanie dodany klucz 1,5 MB, nie może zmieścić się w istniejącej odzyskanej pamięci. Powoduje to nieużywaną ilość wolnej pamięci i powoduje większą fragmentację.
used_memory_rss
Jeśli wartość jest wyższa niż 1,5 razy used_memory
metryka, fragmentacja w pamięci jest większa. Fragmentacja może powodować problemy, gdy:
- Użycie pamięci jest zbliżone do maksymalnego limitu pamięci dla pamięci podręcznej lub
UsedMemory_RSS
jest wyższy niż maksymalny limit pamięci, co potencjalnie powoduje błędy strony w pamięci.
Jeśli pamięć podręczna jest pofragmentowana i działa pod dużym obciążeniem pamięci, system wykonuje tryb failover, aby spróbować odzyskać pamięć o rozmiarze zestawu rezydentów (RSS).
Usługa Redis uwidacznia dwa statystyki i used_memory
used_memory_rss
, za pomocą polecenia INFO, które może pomóc w zidentyfikowaniu tego problemu. Te metryki można wyświetlić przy użyciu portalu.
Sprawdź, czy maxmemory-reserved
wartości i maxfragmentationmemory-reserved
są odpowiednio ustawione.
Istnieje kilka możliwych zmian, które mogą pomóc w poprawnym użyciu pamięci:
- Skonfiguruj zasady pamięci i ustaw czas wygaśnięcia kluczy. Te zasady mogą nie być wystarczające w przypadku fragmentacji.
- Skonfiguruj wartość maxmemory-reserved, która jest wystarczająco duża, aby zrekompensować fragmentację pamięci.
- Utwórz alerty dla metryk, takich jak użyta pamięć, aby uzyskiwać wczesne powiadomienia o potencjalnym wpływie.
- Skalowanie do większego rozmiaru pamięci podręcznej z większą pojemnością pamięci. Aby uzyskać więcej informacji, zobacz Azure Cache for Redis planning FAQ (Planowanie usługi Azure Cache for Redis — często zadawane pytania).
Aby uzyskać zalecenia dotyczące zarządzania pamięcią, zobacz Najlepsze rozwiązania dotyczące zarządzania pamięcią.
Długotrwałe polecenia
Ta sekcja została przeniesiona. Aby uzyskać więcej informacji, zobacz Długotrwałe polecenia.
Ograniczenie przepustowości po stronie serwera
Ta sekcja została przeniesiona. Aby uzyskać więcej informacji, zobacz Ograniczenie przepustowości sieci.