Övervaka och konfigurera en databasserver

Slutförd

När ett företag har migrerat sina lokala databaser till Azure Database for MySQL/PostgreSQL behöver de fortfarande ett sätt att övervaka sina prestanda.

Som databasutvecklare har du använts för att använda databasspecifika verktyg och övervakning av lokala virtuella datorer. Nu när dina databaser körs i Azure kan du använda portalen för att använda ett enda verktyg för att övervaka alla olika databaser.

I den här lektionen tittar du på hur Azure Monitor kan hjälpa dig att övervaka hälsotillståndet för de databaser som du ansvarar för. När du har upptäckt problem ser du hur du ändrar konfigurationen av dina databaser för att lösa problemen.

Så här använder du Azure Monitor för att visa hälsotillståndet för dina databaser

Använd Azure Monitor för att spåra resursanvändning i Azure Database for MySQL/PostgreSQL. På sidan Mått för servern i Azure-portalen kan du skapa diagram som hjälper dig att identifiera trender i prestanda och upptäcka avvikelser.

Mått för Azure Database for MySQL/PostgreSQL

De mått som är tillgängliga för övervakning av en server finns i fyra breda kategorier:

  • Lagringsmått
  • Anslut ionsmått
  • Mått för resursanvändning för databearbetning
  • Replikeringsmått

Lagringsmått

Lagringsmått spårar den totala storleken på dina databaser på servern (lagring används) och den aktuella mängden lagringsutrymme på servern (lagringsgräns). I ett aktivt system ser du förmodligen att måttet För lagring som används växer över tid. Om du har valt alternativet för automatisk tillväxt för servern ökar måttet För lagringsgräns ibland när mängden ledigt utrymme minskar. Extra lagringsutrymme läggs till när mängden ledigt utrymme sjunker under 5 procent av den aktuella användningen. Använd måttet lagringsprocent för att visa andelen använt utrymme för att frigöra utrymme på servern.

Om servern regelbundet lägger tid på att öka lagringsutrymmet bör du överväga att tilldela mer utrymme manuellt. Gör detta i Azure-portalen genom att välja sidan Prisnivå för servern och använda skjutreglaget Lagring . Kom ihåg att du debiteras för lagring, så ställ inte in lagringen som är tillgänglig på hög till att vara med.

Måttet För säkerhetskopieringslagring som används visar hur mycket utrymme dina säkerhetskopior tar. Det här måttet är viktigt ur ett kostnadsperspektiv. Du debiteras inte för lagring av säkerhetskopior, förutsatt att det fortfarande är lägre än storleken på det lagringsutrymme som allokerats till servern (enligt prisnivån). När du överskrider den här gränsen debiteras du för lagring av säkerhetskopior.

Anslut ionsmått

Måttet Aktiva anslutningar visar hur många samtidiga anslutningar servern stöder för närvarande. Detta kanske inte är samma som antalet samtidiga användare, beroende på om du har konfigurerat någon typ av anslutningspool. Azure Database for MySQL/PostgreSQL tillhandahåller för närvarande ingen kapacitet för anslutningspooler, men du kan använda en proxytjänst som PgBouncer* (för PostgreSQL) för att implementera den här funktionen. Mer information finns i Metodtips för prestanda för användning av Azure Database for PostgreSQL – Anslut ionspooler

Måttet Misslyckade anslutningar visar hur ofta användare har presenterat ogiltiga autentiseringsuppgifter. Ett stort antal av dessa händelser under en kort tidsperiod kan tyda på en råstyrkeattack.

Mått för resursanvändning för databearbetning

Dessa mått hjälper dig att övervaka hur servern hanterar arbetsbelastningen.

Måttet CPU-procent visar hur upptagen processorn är. Hög CPU-användning är inte ett problem, såvida det inte har ökat med tiden. Processoranvändning som är över 90 % och fortfarande ökar indikerar att systemet närmar sig bearbetningskapaciteten. Du bör överväga att skala upp till en prisnivå med fler resurser.

Måttet Minnesprocent anger minnesanvändning. Azure Database for MySQL/PostgreSQL använder minne för cachelagring av data och för att köra de processer som initieras av varje klientbegäran. Hög minnesanvändning är inte ett problem förrän det blir överdrivet mycket, vilket vanligtvis är över 95 %, beroende på den faktiska mängden tillgängligt minne. Mycket låg minnestillgänglighet kan orsaka anslutningsfel och långsamma prestanda på grund av minnesfragmentering. Du bör övervaka det här måttet för att avgöra om minnesanvändningen växer över tid och skala servern därefter.

Måttet I/O-procent spårar mängden diskaktivitet som utförs av servern. Helst bör det här värdet vara så lågt som möjligt. Disk-I/O är en långsam åtgärd. Ett högt värde för det här måttet, tillsammans med ett högt värde för minnesprocent, kan tyda på att servern inte har tillräckligt med resurser för att cachelagras effektivt och i stället måste läsa och skriva data till disklagring. En viss grad av I/O-aktivitet är oundviklig eftersom dina data måste sparas på disken någon gång och transaktionsloggarna måste underhållas. I de flesta databasservrar utförs denna skrivning av en separat process eller tråd som körs asynkront.

Måtten Network In och Network Out visar mängden trafik som kommer in och ut från servern över aktiva anslutningar. Gränserna för dessa siffror bestäms av bandbredden för sökvägen mellan klientprogrammen och servern.

Replikeringsmått

Azure Database for PostgreSQL innehåller måtten Maximal fördröjning mellan repliker och replikfördröjning som hjälper dig att avgöra hur uppdaterade repliker är. Dessa mått är bara meningsfulla om du har konfigurerat skrivskyddade repliker.

Måttet Max Lag Across Replicas visar hur många byte den långsammaste repliken ligger bakom huvudrepliken. Du kan bara övervaka det här måttet från huvudservern.

Måttet Replikfördröjning visar tiden, i sekunder, sedan den senaste transaktionen togs emot från huvudservern och tillämpades på en replik. Det här måttet är bara meningsfullt när det visas på en replik.

Azure Database for MySQL har måttet Replikeringsfördröjning i sekunder . Det här måttet, som du bara kan övervaka från en replik, visar hur många sekunder repliken släpar efter originalet.

Skapa diagram och aviseringar för att övervaka prestanda

sidan Mått för en server i Azure-portalen kan du skapa diagram som spårar måttvärden. Mått samlas in med en minuts intervall. För varje mått anger du en aggregering som bestämmer hur måttet ska rapporteras.

  • Medelvärdet genererar ett genomsnittligt värde för måttet i varje minut
  • Max visar det maximala värde som uppnåtts under varje minut
  • Min visar det minsta värdet
  • Summan summerar måttet
  • Antal visar hur många gånger händelsen som genererade måttet inträffade

Alla aggregeringar är inte nödvändigtvis meningsfulla för varje mått.

I exempeldiagrammet nedan visas de genomsnittliga värdena minut för minut för måtten CPU-procent, Minnesprocent, I/O-procent och Aktiva anslutningar. Du ser att det finns 101 aktiva anslutningar som körs samtidigt. Processor- och minnesanvändningen är båda stabila och I/O-procenten är 0. I det här exemplet utför klientprogrammen läsintensiva arbetsbelastningar och nödvändiga data cachelagras i minnet.

Image of the chart showing the values captured for the CPU percent, Memory percent, IO percent, and Active connections metrics

Observera att det finns en fördröjning på upp till fem minuter mellan måtten som samlas in och resultaten som visas i ett diagram.

Om ett mått anger att en resurs når en kritisk punkt kan du ställa in en avisering för att meddela en administratör. Exemplet nedan skickar ett e-postmeddelande till en administratör om minnesanvändningen överskrider 90 procent.

Image of the alerts page, showing a new alert that sends an email if memory utilization exceeds 90%

Konfigurera serverparametrar

Interna MySQL- och PostgreSQL-servrar är mycket konfigurerbara eftersom båda använder konfigurationsinställningar som lagras i parameterfiler. För PostgreSQL lagras den här informationen i postgresql.conf-filen . För MySQL lagras konfigurationsdata i olika my.cnf-filer . I Azure Database for MySQL/PostgreSQL har du inte direkt åtkomst till dessa filer. I stället kan du visa och ändra serverparametrar med hjälp av Azure-portalen eller Azure CLI.

Visa och ange parametrar med hjälp av Azure-portalen

Serverkonfigurationsparametrarna är tillgängliga på sidan Serverparametrar för servern i Azure-portalen. Du kan ändra parametervärdena efter behov för servern. Bilden nedan visar sidan med serverparametrar för Azure Database for PostgreSQL. Motsvarande sida för Azure Database for MySQL liknar den.

Image of the Server parameters page for Azure Database for PostgreSQL

Alla serverkonfigurationsparametrar är inte tillgängliga eftersom en stor del av serverkonfigurationen styrs av Azure. Parametrar som är associerade med minnesallokering saknas till exempel. Dessutom har Azure Database for MySQL inte stöd för ISAM-lagring, så myisam-parametrarna finns inte där.

Ändringar av parametrar som är markerade som Dynamiska träder i kraft omedelbart. Parametrar som har markerats som statiska kräver att du startar om servern. Det gör du på sidan Översikt för servern.

Image of the Overview page for Azure Database for PostgreSQL. The Restart button is highlighted

Visa och ange parametrar med hjälp av Azure CLI

Du kan visa och ändra parametrar programmatiskt med kommandona az mysql/postgres server configuration . Visa inställningarna för varje konfigurationsparameter med az mysql/postgres server configuration listoch hemma i på en enskild parameter med .az mysql/postgres server configuration show [parameter-name] Kodfragmentet nedan visar ett exempel för Azure Database for PostgreSQL:

az postgres server configuration show \
    --resource-group northwindrg \
    --server-name northwind101 \
    --name vacuum_defer_cleanup_age

Resultatet bör se ut ungefär så här:

{
  "allowedValues": "0-1000000",
  "dataType": "Integer",
  "defaultValue": "0",
  "description": "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any.",
  "id": "**********************",
  "name": "vacuum_defer_cleanup_age",
  "resourceGroup": "northwindrg",
  "source": "system-default",
  "type": "Microsoft.DBforPostgreSQL/servers/configurations",
  "value": "0"
}

Det viktiga objektet i utdata är värdefältet , som visar den aktuella inställningen för parametern.

az mysql/postgres server configuration set Använd kommandot för att ändra värdet för en konfigurationsparameter enligt följande:

az postgres server configuration set \
    --resource-group northwindrg \
    --server-name northwind101 \
    --name vacuum_defer_cleanup_age \
    --value 5

Om du behöver starta om en server när du har ändrat en statisk parameter kör az mysql/postgres server restart du kommandot:

az postgres server restart \
    --resource-group northwindrg \
    --name northwind101