Ich bin Student an der Fontys University in Eindhoven und führe derzeit eine Reihe von Interviews durch, um bei der Entwicklung eines SQL Server-Tools zu helfen. Ich möchte Feedback von Experten auf diesem Gebiet erhalten.
Eine meiner Fragen ist:
Welche Leistungsindikatoren können Sie in einer SQL Server-Instanz anzeigen, um die Leistung und den allgemeinen Zustand zu bestimmen?
Besonders interessieren mich die Schwellenwerte, wenn aus Gut schlecht wird.
Jamil Young Eindhoven Niederlande
quelle
Dies ist ein großes Thema mit viel Material und einem Hauch von Googeln. Als Ausgangspunkt sind dies die Zähler, die ich zuerst betrachte:
Prozessor -% Prozessorzeit
System - Prozessorwarteschlangenlänge
Sie erhalten wahrscheinlich von jedem DBA, den Sie fragen, einen anderen Zielwert für die CPU-Auslastung. SQL Server-Lizenzen sind teuer, sodass Sie einerseits die CPU-Auslastung maximieren und andererseits die Verfügbarkeit nicht beeinträchtigen möchten. In einer idealen Welt mit gut verstandenen Workloads können Sie eine Auslastung von 70% anstreben, bei 80-90% warnen und bei 90% + alarmieren. Zurück in der realen Welt mit einer Arbeitsbelastung, die Spitzen- und Tiefstwerte aufweist, ist es möglicherweise bequemer, einen Durchschnitt von 50-60% zu erreichen.
Speicher - Verfügbare MByte
Auslagerungsdatei -% Verwendung
Bei einem dedizierten SQL Server können je nach installiertem RAM weniger als 100 bis 200 MB verfügbarer Speicher auf einen Mangel und ein Risiko für das Paging des Betriebssystems hinweisen. Im Allgemeinen möchten wir nicht viel Aktivität von Auslagerungsdateien sehen, daher würde ich untersuchen, ob% Usage größer als 2% war, und besorgt sein, ob es 5% erreicht.
Buffer Manager - Trefferquote des Puffercaches
Buffer Manager - Lebenserwartung der Seite
Diese beiden Zähler werden besser gegen eine etablierte Basislinie für einen Server betrachtet. Idealerweise möchten wir, dass die Cache-Trefferquote so nahe wie möglich bei 100% liegt und ein PLE in Tausenden von Sekunden ausgeführt wird. Achten Sie darauf, wenn sie von historischen Durchschnittswerten abweichen.
SQL-Statistik - Stapelanforderungen / Sek
SQL-Statistik - Kompilierungen / Sek
SQL Statistics - Neukompilierungen / Sek
Anfragen / Sek. Ist ein gutes relatives Maß dafür, wie "beschäftigt" ein Server ist. Hohe Kompilierungs- / Neukompilierungswerte können darauf hinweisen, dass CPU-Zyklen bei der Abfragekompilierung verschwendet werden.
Physische Festplatte - Durchschn. Disk sec / Read
Physische Festplatte - Durchschn. Disk sec / Write
Physische Festplatte - Festplattenlesevorgänge / Sek
Physische Festplatte - Festplatte schreibt / Sek
Eine grobe Richtlinie für ein ordnungsgemäß konfiguriertes E / A-System lautet <5 ms (idealerweise 1 ms) für Protokolllaufwerke und <20 ms (idealerweise <10 ms) für Daten. Lese- / Schreibvorgänge pro Sekunde sollten gegen den bekannten Grenzwert für die Laufwerke abgewogen werden. Wenn Sie also eine Kapazität für 1000 IOPS haben, würde ich Upgrade-Optionen prüfen, wenn der durchschnittliche IOPS 750 erreicht.
quelle