Rozwiązywanie problemów z serwerem Azure Managed Redis (wersja zapoznawcza)
W tej sekcji omówiono rozwiązywanie problemów powodowanych przez warunki na serwerze usługi Azure Managed Redis (wersja zapoznawcza) lub dowolnym z hostujących go maszyn wirtualnych.
- Wysokie użycie procesora CPU
- 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 .
Wysokie użycie procesora CPU
Wysokie użycie procesora CPU oznacza, że serwer Redis jest zajęty i nie może nadążyć za żądaniami, co prowadzi do przekroczenia limitu czasu. Sprawdź metryki procesora CPU w pamięci podręcznej, wybierając pozycję Monitorowanie z menu Zasób po lewej stronie. Wykres procesora CPU jest widoczny w okienku roboczym w obszarze Szczegółowe informacje. Możesz też dodać metrykę ustawioną na procesor CPU w obszarze Metryki.
Poniżej przedstawiono kilka opcji, które należy wziąć pod uwagę w przypadku wysokiego użycia procesora CPU.
Skalowanie w górę lub przejście do wyższej warstwy wydajności
Aby uzyskać większą wydajność, rozważ 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 Warstwy wydajności.
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
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 Managed Redis przeszła tryb failover, wszystkie połączenia klientów z węzła, które uległy awarii, są przenoszone do węzła, który jest nadal uruchomiony. Procesor CPU 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.
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.
- 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 Planowanie usługi Azure Managed 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
Aby uzyskać więcej informacji, zobacz Długotrwałe polecenia.
Ograniczenie przepustowości po stronie serwera
Aby uzyskać więcej informacji, zobacz Ograniczenie przepustowości sieci.