30
http://www.netways.de NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected] Monitoring Microsoft SQL Server Michael Streb NETWAYS GmbH

Monitoring Microsoft SQL Server - netways.de · Software / SQL Server / Performancecounter

  • Upload
    buiphuc

  • View
    263

  • Download
    0

Embed Size (px)

Citation preview

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Monitoring Microsoft SQL Server

Michael Streb NETWAYS GmbH

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Einführung

  Welche Software kommt zum Einsatz

  SQL Server  Microsoft Windows 2003 Server x64  Microsoft SQL Server 2008 x64 Standart  NSClient++ 0.3.3 aus MSI Paket

  NAGIOS Server  Debian Etch 4.0  NAGIOS 3.0.3  Nagios-Plugins 1.4.12  Verschiedene SQL Plugins

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Grundlagen

  Welche Parameter sollten überwacht werden und wie ?

  Betriebssystem und Hardware  Systemüberwachung mittels NSClient  System Performancecounter  Herstellertools für Hardware

  SQL Server  Dienste  SQL spezifische Performancecounter  Datenbankabfragen (Queries / Stored Procedures)

  Netzwerk  Latenz  Auslastung der Netzwerkinterfaces

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Grundlagen

  Wie sind die Messwerte zu betrachten ?

  Einzelne Parameter sind nur bedingt aussagekräftig

  Zusammenhang verschiedener Parameter finden  Durch zeitgleiche Alarmierungsmeldungen  grafische Darstellung der Messwerte über einen bestimmten Zeitraum

–  NagiosGrapher –  PNP

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / CPU

  CPU Auslastung   Gesamt genutzte Prozessorzeit in %

(über alle Prozessoren und Core`s)  sollte unter 80% bleiben

  Privileged CPU Zeit   Wieviel Prozessorzeit in % braucht das System selbst (z.B. für IO Operationen)

 < 15 % der gesamten CPU Auslastung ist ok

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / CPU

  Benutzer CPU Zeit   Wieviel % der gesamten CPU Zeit wird für Benutzerprozesse verwendet

 <= 80% der gesamten benutzen CPU Zeit

  SQLServer CPU Zeit

  Wieviel % der gesamten CPU Zeit wird für den SQL Serverprozess verwendet  <= 80% der gesamten benutzten CPU Zeit

  Prozessor Queue   Wie viele Threads warten auf Abarbeitung

 <= 4 pro CPU ist sehr gut  <= 8 pro CPU ist gut  <= 20 pro CPU ist ok  >20 pro CPU suboptimal

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Zusammenfassung CPU

  CPU Auslastung   < 80 % optimal

  Prozessor Queue   < 4 pro CPU optimal   < 8 pro CPU gut   > 20 pro CPU problematisch

  Privileged CPU Zeit   <= 15% der gesamten CPU Auslastung

  Benutzer CPU Zeit   <= 80% der gesamten CPU Auslastung

  SQL Server CPU Zeit   <= 80% der gesamten CPU Auslastung

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / Speicher

  Verfügbarer Speicher   Freier Arbeitsspeicher für neue Prozesse

 > 100MB mimimum

  Seiteneingaben / s   Wieviele Speicherseiten (Pages) werden pro Sekunde in den Speicher geladen

 < 10 pro Sekunde optimal

  Seiten / s   Wieviele Pages werden pro Sekunde gesamt gelesen und geschrieben

 grobe Werte für den Optimalzustand –  < 100 auf langsamen Festplattensystemen –  < 600 auf schnelleren Festplattensystemen

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / Speicher

  SQL MemoryManager: Grants pending   Auf Speicher wartende Prozesse

  Je näher der Wert an 0 ist desto besser

  Pagefile Benutzung  < 70% durchaus normal und nicht bedenklich

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / IO

  Direct Attached Storage (DAS) Parameter   Festplattenplatz prüfen

 Wie viel Festplattenplatz ist noch frei –  sehr grob 10% der Laufwerksgröße

  Mittlere Sek./Lesevorgänge  Wie lange dauert der lesende Festplattenzugriff

–  < 8ms optimal –  > 20ms problematisch

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / IO

  Direct Attached Storage (DAS) Parameter   Mittlere Sek./Schreibvorgänge

 Wie lange dauert der schreibende Festplattenzugriff  Writecache nur mit Battery Backup Unit (BBU)

-> Geschwindigkeitssteigerung –  mit Write Cache (nur mit BBU)

»  < 1 ms optimal »  < 4 ms gut »  > 4 ms schlecht

–  ohne Write Cache »  < 8 ms optimal »  < 20 ms gut »  > 20 ms schlecht

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / IO

  Direct Attached Storage (DAS) Parameter   Durchschnittl. Warteschlangenlänge des Datenträgers

 Wie lange warten Anfragen an den Datenträger bis sie verarbeitet werden –  > 30 weist auf mögliche Probleme hin

 Durch Read-Ahead nicht genau prognostizierbar –  Performancetests um den genauen Wert zu ermitteln

  RAID Controller / BBU  Herstellertools

–  DELL OpenManage –  HP SIM –  FSC Serverview –  IBM Director –  3ware tw_cli –  Areca cli32 –  ...

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / IO

  SAN Parameter   Herstellertools nutzen

 auf Clientseite nur bedingt aussagekräftig

  kein Allheilmittel für IO Performanceprobleme

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Zusammenfassung IO

  DAS Parameter   Freie Kapazität

 sehr grob > 10%   Mittlere Sek. / Lesevorgänge

 < 8 optimal  > 20 schlecht

  Mittlere Sek. / Schreibzugriffe  Cached: < 1 ms optimal, > 4 ms schlecht  Non-cached: < 8 ms optimal, > 20 ms schlecht

  Durchschnittl. Warteschlangenlänge des Datenträgers  Kein allgemeingültiger Wert

–  > 30 weist auf mögliche Probleme hin   BBU des RAID Controllers prüfen

  SAN Parameter   Herstellertools nutzen

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Betriebssystem / Dienste

  SQL Server Dienste

  SQL Server selbst  MSSQLSERVER

  evtl. Analyse Service für SQL Server

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / SQL Server

  Verbindung zum MSSQL aufnehmen um Abfragen mit NAGIOS Plugins auszuführen   meist Perl Plugins

 DBD::Sybase –  keine Konfiguration notwendig –  benötigte Pakete

»  libdbd-sybase-perl

 TDS und ODBC –  Konfiguration notwendig –  benötigte Pakete

»  libdbd-odbc-perl »  unixodbc »  Tdsodbc

  MS SQL spezifische Performancecounter

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / Konfiguration ODBC

  /etc/odbcinst.ini   Welche Datenbanktreiber stehen zur Verfügung

[FreeTDS] Description=MSSQL DB Driver=/usr/lib/odbc/libtdsodbc.so UsageCount=1

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / Konfiguration ODBC

  /etc/odbc.ini   Konfiguration der DSN

[MSSQLServer] Driver=FreeTDS Description=MSSQL Nagios Trace=Yes TraceFile=/tmp/sql.log ForceTrace=yes Server=192.168.242.131 Port=1433 Database=master

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / Welche Plugins gibt es

  check_mssql_monitor   Perl   DBD::Sybase   Nagios::Plugins   benutzt sp_monitor

  check_mssql_sproc.pl   Perl   DBD::ODBC   führt eine beliebige Stored Procedure aus

  check_sql   Perl   DBD::Sybase   führt einen beliebigen SQL Query oder eine SP aus

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / Plugins / check_mssql_monitor

  check_mssql_monitor   Anpassungen zur Version auf NagiosExchange.org

 Keine

  Kommandozeilenaufruf   ./check_mssql_monitor -H 192.168.242.131 -U sa -P '$Mssql2008' -w 10 -c 20

  Ausgabe des Plugins   Output:

  CHECK_MSSQL_MONITOR OK - SQL Server responded in 0.023985 seconds   Perfdata:

  time=0.023985s;10;20 cpu=10%;; io=20%;; idle=50%;;

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / Plugins / check_mssql_sproc.pl

  check_mssql_sproc.pl   Anpassungen zur Version auf NagiosExchange.org

< $conn{"dsn"} = "dbi:ODBC:Driver={SQL Server};SERVER=" . $conn{"server"}; > $conn{"dsn"} = "dbi:ODBC:" . $conn{"server"};

  Kommandozeilenaufruf   ./check_mssql_sproc.pl -H MSSQLServer -u sa -P '$Mssql2008' -d testdb -p

sp_product_price_lower_30 -w 10 -c 20

  MSSQLServer ist die DSN aus odbc.ini _kein_ Hostname oder IP Adresse

  Ausgabe des Plugins   Output:

  CRITICAL: SQL Query returned 56612 for stored procedure 'sp_product_price_lower_30'. The critical threshold is 20.

  Perfdata:   keine

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / Plugins / check_sql

  check_sql   Anpassungen zur Version auf NagiosExchange.org

< my $cs = "DBI:$driver:" . ($database ? "database=$database;" : '') . "server=$hostname" . ($port ? ";port=$port" : ''); > my $cs = "DBI:$driver:" . ($database ? "database=$database;" : '') . "host=$hostname" . ($port ? ";port=$port" : '');

  Kommandozeilenaufruf   ./check_sql -H 192.168.242.131 -d Sybase -U sa -P '$Mssql2008' -D testdb -q

'sp_product_price_lower_30' -s -l 'Row count‘

  Ausgabe des Plugins   Output:

  CHECK_SQL OK - SQL Server Row count: 75274 (0.043734 seconds).

  Perfdata:   time=0.043734s;;

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / SQL Server / Performancecounter

  SQLServer:Access Methods   Forwarded Records

 Einträge einer Tabelle die zur Laufzeit vergrößert wurden und nun mittels Zeiger an eine andere Stelle verweisen

–  unter 10 pro 100 Batch requests / s optimal

 nur bei Heap Tabellen interessant   Index Searches / sec

 Wie viele Suchen werden über Indexes abgearbeitet –  Je mehr indizierte Suchen desto besser

  Full Scans / sec  Wie viele Suchen erfordern einen Fullscan der Tabellen

–  So gering wie möglich halten, evtl. Indexes anpassen

  Page Splits  Speicherseiten die verschoben werden müssen

–  < 20 per 100 Batch requests / s

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / SQL Server / Performancecounter

  SQLServer:Buffer Manager   Buffer Cache Hit Ratio

 Wie viele Anfragen werden aus dem Buffer Cache beantwortet –  > 90% optimal

  Free List Stalls / sec  Aus Speichergründen abgewiesene Anfragen an den Buffer

–  < 2 Sekunden optimal –  Indikator für zu wenig Speicher

  Page Life Expectancy  Wie lange bleiben bereits vorhandene Pages im Speicher bestehen

–  > 300 Sekunden optimal »  Werte darunter deuten auf Speichermangel hin

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Software / SQL Server / Performancecounter

  SQLServer:Buffer Manager   Page Reads / Writes per sec

 Von SQL aus verursachte Speicher Lese/Schreibzugriffe –  < 90 Zugriffe optimal

  Lazy Writes / sec  Wie oft müssen benutzte Pages aus dem Speicher auf die Festplatte

geschrieben(ausgelagert) werden –  < 20 ist optimal –  > 20 weist auf einen Speichermangel hin

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Zusammenfassung SQL Performancecounter

  SQLServer:Access Methods   Forwarded Records

  unter 10 pro 100 Batch requests / s   Index Searches / sec   Full Scans / sec   Page Splits

  < 20 per 100 Batch requests / s

  SQLServer:Buffer Manager   Buffer Cache Hit Ratio

  > 90% optimal   Free List Stalls / sec

  < 2 Sekunden optimal   Page Life Expectancy

  > 300 Sekunden optimal

  SQLServer:Buffer Manager   Page Reads / Writes per sec   Lazy Writes / sec

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Netzwerk

  Netzwerkauslastung   Prüfung durch:

 Performancecounter  SNMP Abfrage auf den Windows Host  SNMP Abfrage(n) auf den/die entsprechenden Switches

  Latenz   Prüfung vom NAGIOS Server aus per PING   Prüfung von den SQL Client Systemen per PING

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Demo

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Fragen ?

http://www.netways.de

NETWAYS GmbH | Deutschherrnstr. 47a | 90429 Nürnberg | www.netways.de | [email protected]

Vielen Dank für Ihre Aufmerksamkeit.