Dela via


Felsöka serverproblem med Azure Managed Redis (förhandsversion)

I det här avsnittet beskrivs felsökningsproblem som orsakas av förhållanden på en Azure Managed Redis-server (förhandsversion) eller någon av de virtuella datorer som är värdar för den.

Kommentar

Flera av felsökningsstegen i denna guide innehåller anvisningar för att köra Redis-kommandon och övervaka olika prestandamått. Mer information och instruktioner finns i artiklarna i avsnittet Ytterligare information.

Hög CPU

Hög CPU-användning innebär att Redis-servern är upptagen och inte hinner slutföra alla förfrågningar, vilket leder till timeout. Kontrollera måttet CPU i cacheminnet genom att välja Övervakning på menyn Resurs till vänster. Du hittar CPU-grafen i arbetsfönstret under Insikter. Alternativt kan du lägga till en måttuppsättning i CPU under Mått.

Följande är några alternativ att överväga vid hög CPU-användning.

Skala upp eller växla till en högre prestandanivå

För att uppnå högre prestanda bör du överväga att skala upp till en större cachestorlek med fler CPU-kärnor. Mer information finns i Prestandanivåer.

Snabba förändringar av antalet klientanslutningar

Mer information finns i Undvika toppar i klientanslutningar.

Tidskrävande eller omfattande kommandon

Mer information finns i Tidskrävande kommandon.

Skalning

Skalningsåtgärder är processor- och minnesintensiva eftersom de kan involvera att flytta data runt noder och ändra klustertopologin. Mer information finns i Skalning.

Serverunderhåll

Om din Azure Managed Redis har genomgått en redundansväxling överförs alla klientanslutningar från noden som gick ned till den nod som fortfarande körs. Processoranvändningen kan nå en topp på grund av det ökade antalet anslutningar. Du kan prova att starta om klientprogrammen så att alla klientanslutningar återskapas och omfördelas mellan de två noderna.

Hög minnesanvändning

Minnestryck på servern kan leda till olika prestandaproblem som fördröjer bearbetningen av begäranden. När ett minnestryck uppstår skickar systemet data till disk, vilket gör att systemet blir avsevärt långsammare.

Här följer några möjliga orsaker till högt minnestryck:

  • Cacheminnet är fyllt med data nära sin maximala kapacitet
  • Redis-servern har hög minnesfragmentering

Fragmentering uppstår sannolikt när ett belastningsmönster lagrar data med hög variation i storlek. Fragmentering kan till exempel uppstå när data sprids mellan 1 KB och 1 MB i storlek. När en 1 KB-nyckel tas bort från ett befintligt minne passar en 1 MB-nyckel inte in i det och kan orsaka fragmentering. Om en nyckel på 1 MB tas bort och en nyckel på 1,5 MB läggs till får den inte plats i det befintliga återvunna minnet. Detta leder till oanvänt ledigt minne och orsakar mer fragmentering.

Om värdet used_memory_rss värdet är högre än 1,5 gånger used_memory måttet är det fragmentering i minnet. Fragmenteringen kan orsaka problem när:

  1. Minnesanvändningen närmar sig cacheminnets maximala minnesgräns, eller
  2. UsedMemory_RSS är högre än den maximala minnesgränsen, vilket potentiellt kan resultera i sidfel i minnet.

Om ett cacheminne är fragmenteras och körs under högt minnestryck, utför systemet en redundansväxling för att försöka återvinna RSS-minnet (Resident Set Size).

Redis tillhandahåller två statistikvärden, used_memory och used_memory_rss via kommandot INFO som kan hjälpa dig att identifiera det här problemet. Du kan visa dessa mått med hjälp av portalen.

Det finns flera ändringar du kan göra för att hålla minnesanvändningen felfri:

Rekommendationer om minneshantering finns i Metodtips för minneshantering.

Tidskrävande kommandon

Mer information finns i Tidskrävande kommandon.

Bandbreddsbegränsning på serversidan

Mer information finns i Begränsning av nätverksbandbredd.

Ytterligare information