Upprätta baslinjemått
En baslinje är en samling datamätningar som hjälper dig att förstå det normala "stadiga tillståndet" för programmets eller serverns prestanda. När data samlas in över tid kan du identifiera ändringar från det normala tillståndet. Baslinjer kan vara så enkla som ett diagram över CPU-användning över tid, eller komplexa sammansättningar av mått för att erbjuda prestandadata på detaljerad nivå från specifika programanrop. Baslinjens kornighet beror på hur kritisk prestanda databasen och programmet är.
Med alla typer av programarbetsbelastningar är det absolut nödvändigt att upprätta en fungerande baslinje. En baslinje hjälper dig att identifiera om ett pågående problem bör beaktas inom normala parametrar eller har överskridit angivna tröskelvärden. Utan en baslinje kan varje problem som påträffas betraktas som normalt och därför inte kräva någon ytterligare åtgärd.
Korrelera PRESTANDA för SQL Server och operativsystem
När du distribuerar SQL Server på en virtuell Azure-dator är det viktigt att korrelera PRESTANDA för SQL Server med prestanda för det underliggande operativsystemet. Om du använder Linux som operativsystem måste du installera InfluxDB, Collectd och Grafana för att samla in data som liknar Windows Performance Monitor. Dessa tjänster samlar in data från SQL Server och tillhandahåller ett grafiskt gränssnitt för att granska data. Användning av dessa verktyg i Linux eller Prestandaövervakaren i Windows kan användas tillsammans med SQL Server-specifika data, till exempel SQL Server-väntestatistik. Genom att använda dessa verktyg tillsammans kan du identifiera flaskhalsar i maskinvara eller kod. Följande prestandaövervakare är ett urval av användbara Windows-mått och kan göra att du kan samla in en bra baslinje för en SQL Server-arbetsbelastning:
Processor(_Total)% Processortid – Den här räknaren mäter processoranvändningen för alla processorer på servern. Det är en bra indikation på den övergripande arbetsbelastningen, och när den används tillsammans med andra räknare kan den här räknaren identifiera problem med frågeprestanda.
Växlingsfil(_Total)% Användning – I en korrekt konfigurerad SQL Server bör minnet inte gå till växlingsfilen på disken. I vissa konfigurationer kan du dock ha andra tjänster som kör som förbrukar systemminne och leder till att operativsystemet hämtar minne till disken, vilket resulterar i prestandaförsämring.
PhysicalDisk(_Total)\Avg. Disk sec/Read and Avg. Disk sec/Write – Den här räknaren ger ett bra mått för hur lagringsundersystemet fungerar. Dina svarstidsvärden bör i de flesta fall inte vara högre än 20 ms, och med Premium Storage bör du se värden som är mindre än 10 ms.
System\Processorkölängd – det här talet anger antalet trådar som väntar på processorns tid. Om den är större än noll anger den cpu-tryck, vilket indikerar att din arbetsbelastning kan dra nytta av fler processorer.
SQLServer:Buffer Manager\Förväntad sidlivslängd – Förväntad sidlivslängd anger hur länge SQL Server förväntar sig att en sida ska leva i minnet. Det finns inget korrekt värde för den här inställningen. Äldre dokumentation refererar till 300 sekunder som rätt, men det skrevs i en 32-bitars era när servrar hade mycket mindre RAM-minne. Du bör övervaka det här värdet över tid och utvärdera plötsliga droppar. Sådana droppar i räknarens värde kan tyda på dåliga frågemönster, externt minnestryck (till exempel servern som kör ett stort SSIS-paket) eller bara vara normal systembearbetning som att köra en konsekvenskontroll på en stor databas.
SQLServer:SQL Statistics\Batch Requests/s – Den här räknaren är bra för att utvärdera hur konsekvent upptagen en SQL Server är över tid. Det finns återigen inget bra eller dåligt värde, men du kan använda den här räknaren tillsammans med % processortid för att bättre förstå din arbetsbelastning och dina baslinjer.
SQLServer:SQL Statistics\SQL Compils/sec och SQL Re-Compils/s – Dessa räknare uppdateras när SQL Server måste kompilera eller kompilera om en körningsplan för en fråga eftersom det inte finns någon befintlig plan i plancachen, eller på grund av att en plan har ogiltigförklarats på grund av en ändring. Kompileringar kan indikera T-SQL med omkompilerade frågetips, eller vara ett tecken på minnesbelastning på plancachen som orsakas av antingen många ad hoc-frågor eller enkelt minnestryck.
Dessa räknare är bara ett exempel på de tillgängliga prestandaövervakningsräknare som är tillgängliga för dig. Även om ovanstående räknare ger en bra baslinje för prestanda kan du behöva undersöka fler räknare för att identifiera specifika prestandaproblem.
Väntestatistik
När en tråd körs och tvingas vänta på en resurs som inte är tillgänglig håller SQL Server reda på dessa mått. Den här informationen kan enkelt identifieras via vyn dynamisk hantering (DMV). sys.dm_os_wait_stats
Den här informationen är viktig för att förstå databasens baslinjeprestanda och kan hjälpa dig att identifiera specifika prestandaproblem både med frågekörning och maskinvarubegränsningar. Det är viktigt att identifiera lämplig väntetyp och motsvarande lösning för att lösa prestandaproblem. Väntestatistik är tillgänglig på Azure SQL-plattformen.