Udostępnij za pośrednictwem


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.

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:

  1. Użycie pamięci jest zbliżone do maksymalnego limitu pamięci dla pamięci podręcznej lub
  2. 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:

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.

Dodatkowe informacje