SlideShare uma empresa Scribd logo
1 de 32
Análise de
Performance Usando
o Sistema
Operacional
 DBA Multiplataforma
@rauldoliveira
raul.oliveira@dbytes.com.br
 Meetup Brasília DataGroup
http://www.meetup.com/pt-BR/Brasilia-DataGroup/
 SQLServerDF
http://groups.google.com/group/sqlserverdf
 MTAC
http://www.mtac.org.br
Raul Oliveira
Patrocinadores
Agenda
• Metodologia
• Ferramentas
• Contadores
• Análise superficial dos subsistemas
• + ferramentas 
• Considerações Finais
Objetivos
• Reflexão sobre performance a análise de performance
• Ferramentas
• Contadores
• Visão de um DBA, não de um sysadmin ;-)
• Pouca permissão 
Performance é subjetivo
Sistemas são complexos...
Crédito: Michel Frandsen, “High Performance
Insfrastructure for SQL Server”, PASS Summit 2014.
Sistemas são complexos...
Crédito: Michel Frandsen, “High Performance
Insfrastructure for SQL Server”, PASS Summit 2014.
Sistemas são complexos...
Crédito: Michel Frandsen, “High Performance
Insfrastructure for SQL Server”, PASS Summit 2014.
Terminologias
• Processo
• Thread
• Task
• Trap
• Handle ou File Descriptor
• Stack
Métodos
USE
• Utilização
• Saturação
• Erros
RTFM Method
Cuidado com os anti-métodos
Como analisar?
Crédito: Brendan Gregg
Observação – Básico
Linux
• uptime
• top
• ps
• vmstat
• mpstat
• free
Windows
• Task Manager
Observação Intermediário
Linux
• sar
• pidstat
• -g* (process name)
• -C “a|b”
• -l (comando)
• –t (thread)
• lsof
• netstat
• tcpdump
Windows
• resmon
• Perfmon
• Objects
• Counters
Observação Avançado
Linux
• slabtop
• strace
• ss
• iostat
• iotop
Windows - Sysinternals
• procexp
• handle
• procmon
• perfmon
Observação Avançado
Linux
• slabtop
• strace
• ss
• iostat
• iotop
Windows - Sysinternals
• procexp
• handle
• procmon
• perfmon
• Faça download em
https://download.sysinternals.com/files/SysinternalsS
uite.zip
• Extraia para um diretório: “C:Program
Files(x86)Sysint
• Adicione esse caminho à variável de sistema
%PATH%
• Instale Debugging Tools
• Adcione a variável de sistema
%_NT_SYMBOL_PATH% o valor:
“srv*c:symbols*http://msdl.microsoft.com/download/sym
bols”
Contadores
Recurso Tipo Métrica
CPU Utilização CPU Utilization
CPU Utilização Kernel Mode
CPU Saturação Run-queue
Memoria Utilização Memória Disponível
Memória Saturação Swap***
Storage Utilização Dispositivo Ocupado
Storage Saturação Wait Queue*****
Falando de CPU observe dois fatores:
• Frequência de operação
• Steal
Analisando Processador
Linux
• mpstat
• sar
• -P (sar 1)
• -P ALL (proc por linha)
• -u (sar 1)
• -u ALL (mpstat)
• -q (qeue)
• -m CPU (depende de parâmetro)
• -w (task creation)
• pidstat
• -R (Priority and schedulers)
• -s (Stack utilization)
• -u (CPU Utilization)
• -v** (Some Kernel Tables)
• -w (task switching activities)
Windows
• resmon
• procexp
Analisando Memória
Linux
• free –m
• vmstat
• sar
• –B (paging statistics)
• –H (Huge pages,3)
• -R (report mem statistics,3)
• -r (mem utilization statistics)
• -s (Swap Space utilization)
• -W (Swap Statistics)
• pidstat
• -r (Page Faults and Mem Utiliz.)
• -s (Stack utilization)
Windows
• resmon
• perfmon
• procexp
Analisando IO - Disco
Linux
• sar
• -b (IO e Transf rate)
• -B (de novo  )
• -d (ativ. block device)
• -F** (statitics mount FSs)
• iostat
• -d (disk)
• -h (human)
• -m (megabytes | -k)
• -x (extended)
• -N (Device Mapper-LVM)
• pidstat
• -d (IO Statistics)
• -r (de novo tbm  )
• iotop
Windows
• resmon
• perfmon
Analisando IO - Rede
Linux
• sar
• -n
• netstat
• -putona
• ss
Windows
• resmon
• perfmon
Análise histórica
Linux
• sar –s hh:mm:ss –e
hh:mm:ss
• -f (input de arquivo)
• -o (output para arquivo)
Windows
• Permon com coleta
Independente da plataforma,
use histórico e se possível,
gráficos!
Análises podem ser mais profundas...
Análises podem ser mais profundas...
Profiling e Tracing
• Profiling
• Tracing
Profiling e Tracing
Linux
• perf
• systemtrap
• Dtrace
• ...
Windows
• WPT
• WPR
• WPA
Facilitadores
• Ksar
• Flame Graphs
• PSSDiag
• PAL
Resumo
• Planejar os contadores para olhar é importante
• Saiba onde olhar
• Deixar as anotações básicas prontas
• Guarde histórico de casos já ocorridos
• Já deixe os softwares de monitoramento já instalados e ativos e
saiba como usá-los
Patrocinadores
CONTATOS:
@rauldoliveira
raul.oliveira@dbytes.com.br
 Meetup Brasília DataGroup
http://www.meetup.com/pt-BR/Brasilia-DataGroup/
 SQLServerDF
http://groups.google.com/group/sqlserverdf
 MTAC
http://www.mtac.org.br
Muito Obrigado!

Mais conteúdo relacionado

Mais procurados

Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Wagner Bianchi
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Renato Groff
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQLKingHost - Hospedagem de sites
 
noSQL com CouchDb e PHP
noSQL com CouchDb e PHPnoSQL com CouchDb e PHP
noSQL com CouchDb e PHPTheoziran Lima
 
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...Ricardo Ferreira
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLFernando Ike
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017Renato Groff
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDBHugo Souza
 
planejamento pre-instalacao win server 2012
 planejamento pre-instalacao win server 2012 planejamento pre-instalacao win server 2012
planejamento pre-instalacao win server 2012Yan Ferrari Ferreira
 
Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureJoel Rodrigues
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb javaFabiano Modos
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDjanilson Alves
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHPledsifes
 

Mais procurados (20)

MySQL - visão geral
MySQL - visão geralMySQL - visão geral
MySQL - visão geral
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2
 
Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL
 
noSQL com CouchDb e PHP
noSQL com CouchDb e PHPnoSQL com CouchDb e PHP
noSQL com CouchDb e PHP
 
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQL
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
planejamento pre-instalacao win server 2012
 planejamento pre-instalacao win server 2012 planejamento pre-instalacao win server 2012
planejamento pre-instalacao win server 2012
 
Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft Azure
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb java
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript Fulll
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Artigo couchdb
Artigo couchdbArtigo couchdb
Artigo couchdb
 

Semelhante a Analise de Performance Usando o SO

Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 
Como administrar SQL Server no Linux - Rodrigo Crespi
Como administrar SQL Server no Linux - Rodrigo CrespiComo administrar SQL Server no Linux - Rodrigo Crespi
Como administrar SQL Server no Linux - Rodrigo CrespiTchelinux
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLRaul Oliveira
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosAlexandre Almeida
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídosluanrjesus
 
Estratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineEstratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineGuto Xavier
 
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (..."Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...WeOp - The Operations Summit
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasLeonardo Pedroso Costa
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoTechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoFabrício Catae
 
escalando aplicações django
escalando aplicações djangoescalando aplicações django
escalando aplicações djangoAndrews Medina
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...Cleber Dantas
 
Palestra big data_e_mineracao_dedados_5agosto13-versaoslideshare
Palestra big data_e_mineracao_dedados_5agosto13-versaoslidesharePalestra big data_e_mineracao_dedados_5agosto13-versaoslideshare
Palestra big data_e_mineracao_dedados_5agosto13-versaoslidesharepccdias
 
Padrões de Design para MapReduce
Padrões de Design para MapReducePadrões de Design para MapReduce
Padrões de Design para MapReduceKarla Okada
 

Semelhante a Analise de Performance Usando o SO (20)

Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
Como administrar SQL Server no Linux - Rodrigo Crespi
Como administrar SQL Server no Linux - Rodrigo CrespiComo administrar SQL Server no Linux - Rodrigo Crespi
Como administrar SQL Server no Linux - Rodrigo Crespi
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
 
Automatizando Nmap com NSE
Automatizando Nmap com NSEAutomatizando Nmap com NSE
Automatizando Nmap com NSE
 
Estratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineEstratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços online
 
Pgquarrel
PgquarrelPgquarrel
Pgquarrel
 
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (..."Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
Migracao colaborativa
Migracao colaborativaMigracao colaborativa
Migracao colaborativa
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoTechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
 
escalando aplicações django
escalando aplicações djangoescalando aplicações django
escalando aplicações django
 
Introdução a Arquitetura Computadores
Introdução a Arquitetura ComputadoresIntrodução a Arquitetura Computadores
Introdução a Arquitetura Computadores
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
 
Palestra big data_e_mineracao_dedados_5agosto13-versaoslideshare
Palestra big data_e_mineracao_dedados_5agosto13-versaoslidesharePalestra big data_e_mineracao_dedados_5agosto13-versaoslideshare
Palestra big data_e_mineracao_dedados_5agosto13-versaoslideshare
 
Padrões de Design para MapReduce
Padrões de Design para MapReducePadrões de Design para MapReduce
Padrões de Design para MapReduce
 

Analise de Performance Usando o SO

Notas do Editor

  1. -VM Linux ligada -VM Windows ligada -Dois terminais no Linux -Procexp -Procmon -Resmon
  2. O que mais me ajudou a encontrar coisas na produção
  3. Aqui contar a história do cara que foi ao banheiro.
  4. Processo: abstração e ambiente para rodar um programa. “guarda chuva”. Rodam em user mode solicitando acesso ao kernel mode. Thread (segmento):contexto executável que pode ser agendado para CPU. Task: Entidade executável (processo [thread], thread de multithread, kernel thread) Trap (armadilha): sinal enviado ao kernel solicitgando uma rotina de sistema (syscal, proc exception, interrupt) Stack: Ascendencia de execução de uma thread
  5. Top: z – colorir y – tasks ativas f – Selecionar campos para mostrar (e então pressionar b) <>, F ou O para ordenar os campos. c – mostrar o comando Full H – Ver thread individualmente W – para salvar as configurações.
  6. Top: z – colorir y – tasks ativas f – Selecionar campos para mostrar (e então pressionar b) <>, F ou O para ordenar os campos. c – mostrar o comando Full H – Ver thread individualmente W – para salvar as configurações. ps -eo pid,tid,user,pcpu,pmem,comm free -tm
  7. pidstat 1 -p $(pgrep bzip2) dd if=/dev/zero of=/tmp/arquivo.bin bs=4k count=250000 #1GB
  8. Tracing – Todos os eventos (rastreamento)
  9. Tracing – Todos os eventos (rastreamento)
  10. IOPS no Windows: Disk Transfers/s
  11. echo 3 > /proc/sys/vm/drop_caches Vmstat : R = Run Queue, B = Blocked waiting IO
  12. await = average wait time em ms
  13. Objetivo é mostrar que ainda algumas análises podem mostrar qual pedaço da thread está com maiores esperas/consumos, pois observação é apenas um apanhado geral.
  14. Objetivo é mostrar que ainda algumas análises podem mostrar qual pedaço da thread está com maiores esperas/consumos, pois observação é apenas um apanhado geral.
  15. Profiling – Amostragens (perfil) Tracing – Todos os eventos (rastreamento)
  16. probe-(sonda, teste) while :; do date >> foo; done   perf stat -e 'ext4:*' -a stat = statistica -e = event 'ext4:*' = probe (sonda) Pode ser obtido com: perf list ext4*   perf stat -e 'ext4:*' -a sleep 5   perf record -F 99 -a -g -- sleep 5   while :; do date > /dev/null; done & dd if=/dev/urandom of=/dev/null bs=16k &         perf report -n --stdio   perf script > out.perf02   cat out.perf02 | ./stackcollapse-perf.pl | ./flamegraph.pl > out.svg   perf record -F 99 -ag -p 4665 -- sleep 5 perf trace ls |& less   perf help trace   /proc/sys/kernel/perf_event_paranoid: 2 = user space 1 = kernel and user (default) 0 = CPU specifica mas não permite tracepoint de dado cru -1 = no restriction   perf top -e cycles perf top -e cycles:p1 (cpu 1)   perf mem record stress -m 10 perf mem report   perf lock record ping -f 127.0.0.1 perf lock report | & less -S