Powershell para DBAs SQL Server – Vídeo 13 (Contadores do Perfmom)

Pessoal!

Este é o décimo terceiro vídeo da série de Powershell para DBAs SQL Server onde falo como coletar dados dos contadores do Performance Monitor do Windows.

É importante lembrar que com o Powershell podemos coletar os dados do perfmom de diversos servidores ao mesmo tempo e colocando um loop e utilizando a criatividade até mesmo gerar bons gráficos em tempo real da coleta.

Veja o vídeo, deixe seus comentários, curta e compartilhe.

Link do canal: SQLCrespi no Youtube

Abaixo segue os scripts utilizados nas demos.

[code language=”powershell”]

Enter-PSSession win2016 -Credential administrator@sqlcrespi.local
Import-Module sqlps -DisableNameChecking

#traz dados em tempo real dos contadores.
#sem parametros traz dados do conjunto de contadores de sistema
Get-Counter

#pega a lista de contadores do computador
Get-Counter -ListSet * | Sort-Object CounterSetName | Format-Table CounterSetName

#retorna 3 samples no intervalo de 2 segundos
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3

#coleta de dois servidores
Exit-PSSession
$DiskReads = "\LogicalDisk(C:)\Disk Reads/sec"
$DiskReads | Get-Counter -Computer win2016, winad -MaxSamples 2

#estas informacoes estão em https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.diagnostics/get-counter

#outros exemplos
Enter-PSSession win2016 -Credential administrator@sqlcrespi.local

#lista os contadores com o nome de Processor Information ;)
(Get-Counter -ListSet ‘processor information’).paths | get-counter

#retorna a memória disponível
Get-Counter -Counter "\Memory\Available MBytes"

#contadores do SQL Server
Get-Counter -ListSet *sql* | Select-Object -ExpandProperty Counter

Get-Counter -Counter "\SQLServer:Wait Statistics(*)\Lock waits", "\SQLServer:Plan Cache(*)\Cache Hit Ratio"

#continuous este parametro faz com que o command let execute a cada 1 seg (por padrao) e só para quando for pressionado crtl + c
Get-Counter -Counter "\SQLServer:Databases(_Total)\Log Bytes Flushed/sec" -SampleInterval 1 -Continuous

Get-Counter -Counter "\SQLServer:Databases(_Total)\Log Bytes Flushed/sec" -SampleInterval 1 -MaxSamples 10

Exit-PSSession

$contadores = @("\SQLServer:Wait Statistics(*)\Lock waits", "\Processor(_Total)\% Processor Time", "\LogicalDisk(_Total)\Disk Reads/sec", "\LogicalDisk(_Total)\Disk Writes/sec")
Get-Counter -Counter $contadores -ComputerName win2016, winad -SampleInterval 1 -MaxSamples 10

|Export-Counter -FileFormat blg -Path "c:\perf\contadores_sql.blg" -Force

#neste caso nao coloquei contadores do sql server pq o winad nao tem, se tivesse colocado daria ERRO

[/code]

Abraço, Rodrigo

Author: SQLCrespi

Rodrigo Crespi é MVP Data Platform, MCT, MCSE, MCSA, MCIT, MCDBA e MCP em SQL Server, possuí outras certificações em .NET Framework, Dynamics CRM e etc. Iniciou trabalhando com SQL Server na versão 6.5 na época como desenvolvedor, logo direcionou a sua carreira para a área de administração de bancos de dados. Atualmente é Sócio da CrespiDB – Soluções em Plataformas de Dados, além de professor universitário na Uniftec – Caxias do Sul Autor de diversos artigos publicados em sites e revistas sobre SQL Server e engenharia de software, mantem o canal SQLCrespi no Youtube, o blog SQLCrespi, além de ser dedicado ao SQL Server RS PASS Chapter Leader do grupo de profissionais em SQL Server do Rio Grande do Sul.

Deixe uma resposta