2010-06-08 15 views
5

Mi è stato chiesto di monitorare SQL Server (2005 & 2008) e mi chiedo quali sono le metriche valide da considerare? Sono in grado di accedere ai contatori WMI, ma sono leggermente perso rispetto a quanto profondità sarà utile.Cosa monitorare su SQL Server

Attualmente ho sulla mia lista:

  • connessioni utente
  • account di accesso al secondo
  • attese latch al secondo
  • totale tempo di attesa latch
  • serrature morti al secondo
  • errori al secondo
  • Dimensioni file registro e dati

Sto cercando di essere in grado di monitorare i valori che indicano un peggioramento delle prestazioni sulla macchina o un potenziale problema serio. A tal fine mi chiedo anche a quali valori alcune di queste cose sarebbero considerate normali o problematiche?

Come mi sa che probabilmente sarebbe una buona domanda di avere risposto per la comunità in generale ho pensato di corteggio alcuni di voi esperti DBA là fuori (io non sono certo uno di loro!)

Apologies se una domanda piuttosto aperta. Ry

+0

Tutto si riduce a ciò che è necessario di tale controllo. –

+2

Questo articolo è un po 'vecchio ma potrebbe avere alcuni buoni suggerimenti http://www.sql-server-performance.com/articles/per/10_baselining_tips_p1.aspx –

+0

Un'indicazione di una scatola in difficoltà è ciò che sto cercando. Renditi conto che è davvero vago, ma idealmente mi piacerebbe organizzare gli elementi monitorati in 3 categorie, ad esempio "FYI", "Warning" e "Critical" – rjshuttleworth

risposta

1

Utilizzare SQL Profiler per identificare il Top 10 (o più) query. Creare un rendimento di base per queste query. Esamina i tempi di esecuzione medi attuali rispetto alla tua base di riferimento e avvisa se è significativamente superiore alla tua baseline. È inoltre possibile utilizzare questo elenco per identificare le query per l'ottimizzazione possibile.

Questo attacca il problema a un livello superiore rispetto alla semplice revisione di statistiche dettagliate, anche se queste statistiche possono anche essere utili. Ho trovato questo approccio per lavorare su qualsiasi DBMS, compresi MySQL e Oracle. Se i tempi di query più elevati iniziano a salire, puoi scommettere che stai iniziando a incorrere in problemi di prestazioni, che puoi quindi iniziare a esaminare in dettaglio.

1

Budget permettendo, vale la pena guardare alcuni strumenti di terze parti per aiutare. Utilizziamo Idera's SQL Diagnostic Manager per monitorare lo stato del server e Confio's Ignite per tenere d'occhio le prestazioni delle query. Entrambi i prodotti ci hanno servito bene nel nostro negozio.

1

L'utilizzo percentuale della CPU e la lunghezza media della coda del disco sono anche piuttosto standard. Le CPU costantemente superiori all'80% indicano che potresti aver bisogno di CPU migliori o migliori (e server per ospitarle); Coerentemente più di 2 su qualsiasi coda di disco indica che si è verificato un collo di bottiglia I/O su tale unità.

0

È necessario monitorare le pagine totali assegnate a un particolare processo. È possibile ottenere tali informazioni dall'interrogazione dei database sys.

sys.dm_exec_sessions s 
    LEFT JOIN sys.dm_exec_connections c 
     ON s.session_id = c.session_id 
    LEFT JOIN sys.dm_db_task_space_usage tsu 
     ON tsu.session_id = s.session_id 
    LEFT JOIN sys.dm_os_tasks t 
     ON t.session_id = tsu.session_id 
     AND t.request_id = tsu.request_id 
    LEFT JOIN sys.dm_exec_requests r 
     ON r.session_id = tsu.session_id 
     AND r.request_id = tsu.request_id 
    OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) TSQL 

Il seguente post spiega molto bene come si può usarlo per controllare voi server quando niente funziona http://tsqltips.blogspot.com/2012/06/monitor-current-sql-server-processes.html

+0

Utilizziamo anche l'analisi delle prestazioni del DB di ricerca che offre un'ottima immagine visiva di cosa sta succedendo acceso nel server. Una delle cose brutte è che racconta chi è vittima ma è difficile capire chi sta consumando le risorse. – dhi

0

Oltre alle metriche di performance suggerite sopra, vi raccomando vivamente di monitoraggio memoria disponibile, richieste batch/sec, Compilazioni SQL/sec e SQL Recompilations/sec. Tutti sono disponibili nella vista sys.dm_os_performance_counters e in Windows Performance Monitor.

Per quanto riguarda

Idealmente mi piacerebbe per organizzare gli elementi monitorati in 3 categorie, dire 'Cordiali saluti', 'Attenzione' & 'critica'

Ci sono molti strumenti di monitoraggio di terze parti che consente di creare avvisi di diverso livello di gravità, quindi una volta determinato quali monitoraggi e quali sono i valori consigliati per il proprio ambiente, è possibile impostare avvisi di basso, medio e alto livello.

Verifica articolo di Brent Ozar su metriche non così utili here.

5

risposta in ritardo, ma può essere di interesse per gli altri lettori

Uno dei miei colleghi ha avuto il problema simile, e ha usato questa discussione per aiutare lui ha iniziato. Si è anche imbattuto in un post sul blog che descrive le cause comuni dei problemi di prestazioni e un'istruzione su quali metriche dovrebbero essere monitorate, oltre a quelle già menzionate qui. Queste altre metriche sono:

•% Tempo disco:

Questo contatore indica un problema del disco, ma devono essere osservate in concomitanza con il contatore Lunghezza corrente coda del disco per essere veramente informativo. Ricorda anche che il disco potrebbe essere un collo di bottiglia prima che% Disk Time raggiunga il 100%.

•% Tempo lettura disco e la% di scrittura del disco Tempo:

L'% Tempo lettura disco e% metriche di scrittura del disco orario sono simili a% Tempo disco, solo mostrando le operazioni letti o scritti su disco, rispettivamente, . Si tratta in realtà dei valori medi della lunghezza della coda di lettura del disco e del valore medio della coda di scrittura del disco presentati in percentuale.

•% Idle Time:

Misura la percentuale di tempo il disco è stato inattivo durante l'intervallo di campionamento. Se questo contatore scende al di sotto del 20 percento, il sistema del disco è saturo. Si può prendere in considerazione la possibilità di sostituire l'attuale sistema del disco con un sistema di dischi più veloce.

•% Free Space:

misura la percentuale di spazio libero sull'unità disco logica selezionata. Prendi nota se questo scende al di sotto del 15 percento, poiché rischi di rimanere a corto di spazio libero per il sistema operativo per archiviare i file critici. Una soluzione ovvia qui è aggiungere più spazio su disco.

Se volete leggere l'intero post, si può trovare qui: http://www.sqlshack.com/sql-server-disk-performance-metrics-part-2-important-disk-performance-measures/

Problemi correlati