Quali contatori delle prestazioni è possibile visualizzare su un'istanza di SQL Server per determinare le prestazioni e lo stato di integrità?


10

Sono uno studente della Fontys University di Eindhoven e attualmente sto conducendo una serie di interviste per aiutare con lo sviluppo di uno strumento di SQL Server e vorrei ricevere feedback dagli esperti del settore.

Una delle mie domande è:

Quali contatori delle prestazioni è possibile visualizzare su un'istanza di SQL Server per determinare le prestazioni e lo stato generale?

In particolare, sono interessato ai valori di soglia quando il bene diventa cattivo.

Jamil Young Eindhoven Paesi Bassi

Risposte:


15

Ecco il mio tutorial su Perfmon per SQL Server: http://www.brentozar.com/archive/2006/12/dba-101-using-perfmon-for-sql-performance-tuning/

Per ulteriori contatori e soglie, ecco un poster che abbiamo fatto quando ero a Quest: http://www.quest.com/documents/landing.aspx?id=11635


questo è un meraviglioso PDF dalla ricerca. Sicuramente un custode. Dovrebbero crearne uno anche per i DMV.
StanleyJohns,

In realtà, l'abbiamo fatto! Di solito vengono distribuiti durante le riunioni del gruppo di utenti e durante le conferenze.
Brent Ozar,

6

Questo è un argomento importante con molto materiale disponibile con un po 'di googling. Come punto di partenza, questi sono i contatori che tendo a guardare prima:

Processore -% tempo processore

Sistema - Lunghezza coda processore

Probabilmente otterrai un valore target diverso per l'utilizzo della CPU da ogni DBA che chiedi. Le licenze di SQL Server sono costose, quindi da un lato si desidera massimizzare l'utilizzo delle CPU mentre dall'altro non si vuole compromettere la disponibilità. In un mondo ideale con carichi di lavoro ben compresi, potresti scegliere come target il 70% di utilizzo, avvisare all'80-90%, avvisare al 90% +. Di nuovo nel mondo reale con un carico di lavoro che raggiunge il picco e il minimo, potresti essere più a tuo agio nel mirare al 50-60% in media.

Memoria - MByte disponibili

File di paging -% di utilizzo

Con un SQL Server dedicato, a seconda della RAM installata, meno di 100-200 MB di memoria disponibile possono indicare la fame e un rischio di paging del sistema operativo. In generale, non vogliamo vedere molte attività sui file di paging, quindi starei indagando se% Usage fosse maggiore del 2% e preoccupato se colpisse il 5%

Gestione buffer - Rapporto di riscontro cache buffer

Buffer Manager - Aspettativa di vita della pagina

Entrambi questi contatori sono meglio considerati rispetto a una linea di base stabilita per un server. Idealmente, vorremmo che la percentuale di riscontri nella cache fosse il più vicino possibile al 100% e un PLE in esecuzione in migliaia di secondi. Presta attenzione quando si allontanano dalle medie storiche.

Statistiche SQL - Richieste batch / sec

Statistiche SQL - Compilazioni / sec

Statistiche SQL - Ricompilazioni / sec

Richieste / sec è un'ottima misura relativa di quanto "occupato" sia un server. Valori elevati di compilazione / ricompilazione possono indicare che i cicli della CPU vengono sprecati durante la compilazione delle query.

Disco fisico - Media Disco sec / Leggi

Disco fisico - Media Disk sec / Write

Disco fisico - Letture disco / sec

Disco fisico - Scritture disco / sec

Una linea guida approssimativa per un sistema IO correttamente configurato è <5ms (idealmente 1ms) per i log drive, <20ms (idealmente <10ms) per i dati. Letture / scritture al secondo dovrebbero essere considerate rispetto al limite noto per le unità, ovvero se si dispone di capacità per 1000 IOPS, valuterei le opzioni di aggiornamento quando lo IOPS medio raggiungesse i 750.


C'è qualcosa a quel livello per monitorare deadlock e attese?
bernd_k,

'Blocchi - Numero deadlock / sec' per deadlock. Per le attese, ci sono vari contatori nella categoria "Statistiche di attesa".
Mark Storey-Smith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.