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.


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

Abraço, Rodrigo

Autor: 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 um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s