I CONTATORI PERFMON CHE PROPRIO NON MORIRÀ
Una delle cose che è allo stesso tempo grande e orribile di Internet è che qualcosa, una volta viene pubblicato nel etere, che non va mai in fondo via. (Un giorno, i politici si renderanno conto di questa. Possiamo facilmente infatti verificarne la coerenza). A causa della longevità del contenuto pubblicato a Internet, un sacco di argomenti tuning delle prestazioni diventano "zombie". Abbiamo Shoot 'em in morti, ma continuano a tornare!
In altre parole, tali raccomandazioni vecchi erano una best practice suggerite per molto tempo fa, per una versione specifica di SQL Server, ma sono ormai inadeguato per la versione più recente. Non è raro per me, quando si parla in una conferenza, di incontrare qualcuno che è ancora aggrappato alle impostazioni e tecniche che non sono state le buone prassi sin dai tempi di SQL Server 2000. Ecco un esempio di Microsoft SQL Server 2000 Best Practices che sono molto specifiche della versione .
Quindi, ecco un esempio. Il disco del contatore% Tempo e la lunghezza della coda del disco sono stati fortemente raccomandato come un indicatore di prestazioni chiave per le prestazioni IO. SQL Server genera un sacco di IO i dischi utilizzando scatter / gather per massimizzare l'utilizzo del disco basato su sottosistema IO.Questo approccio porta a brevi sequenze di profondità coda lunghi durante posti di blocco e letture in anticipo per un'istanza di SQL Server. A volte il carico di lavoro del server è tale che il disco non può tenere il passo con l'IO spinse a lui e quando ciò accade, vedrete lunghezza delle code lunghe. Lo scenario di breve raffica non è un problema. L'allungamento scenario lunghezza della coda è di solito un problema.
Così è che una buona pratica?
In una parola, non così tanto.
Tali contatori possono ancora essere di qualche utilità in un'istanza di SQL Server, che dispone di una sola unità disco rigido. Ma questo è estremamente raro in questi giorni. Perché?
Il contatore PerfMon tempo% del disco è uno spettacolo falso metrica per diversi motivi. Essa non tiene conto asincrone di I / O richieste. Non si può dire che cosa il profilo delle prestazioni reale è per un set RAID sottostante può essere, in quanto contengono più unità disco. Il contatore PerfMon Lunghezza coda del disco è anche in gran parte inutile, se non per il SQL Server con un solo disco fisico, perché la cache del controller del disco rigido offusca il numero di operazioni di IO sono in realtà in attesa nella coda o no. In effetti, alcuni dischi rigidi hanno anche cache di scrittura piccoli pure, che intorbida l'acqua era ulteriormente se il IO è veramente in coda, in una cache da qualche parte tra il sistema operativo e il disco, o ha finalmente fatto tutta la strada alla CMOS sul disco.
MEGLIO IO PERFMON CONTATORI
Invece di utilizzare quei segnalini PerfMon, utilizzare il disco di Ave Letture / sec, medio di scrittura del disco / sec e Media Trasferimenti disco / sec per monitorare il rendimento dei sottosistemi disco. Questi contatori tenere traccia del numero medio di lettura IO, IO scrivere, e leggere insieme e scrivere IO al verificato nell'ultimo secondo. Di tanto in tanto, mi piace seguire le stesse metriche in volume di dati piuttosto che il tasso delle operazioni di IO. Quindi, per ottenere che i dati, si potrebbe desiderare di dare a questi volumi specifici contatori PerfMon una prova: Media Byte di trasferimento su disco / sec, Ave Byte letti da disco / sec e scrittura del disco medio Byte / sec.
PER LE PRESTAZIONI DI SQL SERVER IO, USA VISTE A GESTIONE DINAMICA (DMV)
E a meno che non abbiate vissuto in una caverna, è necessario assicurarsi di utilizzare viste a gestione dinamica di SQL Server (DMV) per verificare le prestazioni IO per le versioni più recenti di SQL Server. Alcuni dei miei preferiti DMV per IO includono:
- Sys.dm_os_wait_stats
- Sys.dm_os_waiting_tasks
- Sys.dm_os_performance_counters
- Sys.dm_io_virtual_file_stats
- Sys.dm_io_pending_io_requests
- Sys.dm_db_index_operational_stats
- Sys.dm_db_index_usage_stats
Molti di questi sono completamente DMV documentare in questo articolo documentazione in linea qui a Microsoft SQL Server 2012 Indice viste a gestione dinamica e funzioni .
Allora come stai monitoraggio parametri di rendimento IO? Quali stai usando?
Non vedo l'ora di sentire di nuovo da voi!