Rozwiązywanie problemów z usługą Azure Cache for Redis po stronie serwera

W tej sekcji omówiono rozwiązywanie problemów spowodowanych warunkami na serwerze Azure Cache for Redis lub dowolnym z hostujących go 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 Obciążenie serwera zostanie wyświetlony w okienku roboczym w obszarze Szczegółowe informacje. Możesz też dodać metrykę ustawioną na Pozycję Obciążenie serwera w obszarze Metryki.

Poniżej przedstawiono niektóre opcje, 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 często zadawane pytania dotyczące planowania Azure Cache for Redis.

Szybkie zmiany liczby połączeń klienckich

Aby uzyskać więcej informacji, zobacz Unikanie skoków połączeń klientów.

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 zmianę topologii klastra. Aby uzyskać więcej informacji, zobacz Skalowanie.

Konserwacja serwera

Jeśli Azure Cache for Redis przeszedł tryb failover, wszystkie połączenia klienta z węzła, który uległ awarii, są przenoszone 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 utworzone i ponownie dystrybuowane 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 wykorzystania 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, gdy 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 o rozmiarze 1 KB zostanie usunięty z istniejącej pamięci, klucz o rozmiarze 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 o rozmiarze 1,5 MB, nie może zmieścić się w istniejącej odzyskanej pamięci. Powoduje to nieużywaną wolnej pamięci i powoduje większą fragmentację.

used_memory_rss Jeśli wartość jest wyższa niż 1,5 razy used_memory większa niż metryka, występuje fragmentacja w pamięci. 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ższa niż maksymalny limit pamięci, co może spowodować 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_memoryused_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 Ograniczenia przepustowości sieci.

Dodatkowe informacje