1. Dtrace
Conhecendo o
Daniel Cunha
OSUM/CEOSUG Leader
danielsoro@gmail.com
http://osum.sun.com/profile/danielcunha
2. > Conhecendo o Dtrace – Open Source University Meetup
> O que é o Dtrace?
Dtrace
> Arquitetura Dtrace
> Estrutura do script
> Probe
> Provedor
> Módulo/Função
> Nome
> Predicado
> Ações
> Referências
3. > Conhecendo o Dtrace – Open Source University Meetup
O que é o Dtrace?
> Framework criado pela Sun Microsystems para o
Solaris 10 que oferece ao administrador de sistemas
uma maneira compreensível de acompanhar e rastrear
todas as operações internas de cada processo ou rotina
do sistema, tornando-se uma poderosa ferramenta para
diagnóstico avançado de problemas ou otimizações.
> Portável para (Open)Solaris, Mac OS X, Linux e BSD.
4. > Conhecendo o Dtrace – Open Source University Meetup
Arquitetura Dtrace
5. > Conhecendo o Dtrace – Open Source University Meetup
Estrutura do script
#!/usr/sbin/dtrace -s
Descrição do probe
/predicado/
{
Ações
}
6. > Conhecendo o Dtrace – Open Source University Meetup
Probe
>Descreve o que queremos ouvir/sondar na execução
do script
>Descrito através de 4 campos (Provedor, Modulo,
Função e Nome)
7. > Conhecendo o Dtrace – Open Source University Meetup
Probe | Provedor
> Especifica o método de instrumentação a ser utilizada.
#!/usr/sbin/dtrace -s
syscall:::
/predicado/
{
Ações
}
8. > Conhecendo o Dtrace – Open Source University Meetup
Probe | Módulo/Função
> Descreve o módulo/função que deseja observar.
#!/usr/sbin/dtrace -s
syscall:libc:main:
/predicado/
{
Ações
}
9. > Conhecendo o Dtrace – Open Source University Meetup
Probe | Nome
> Tipicamente representa o local da função.
#!/usr/sbin/dtrace -s
syscall:libc:main:entry
/predicado/
{
Ações
}
10. > Conhecendo o Dtrace – Open Source University Meetup
Predicado
> Pode ser qualquer expressão D.
>A ação é executada apenas quando a mesma for true.
#!/usr/sbin/dtrace -s
syscall:libc:main:entry
cpu == 0
{
Ações
}
11. > Conhecendo o Dtrace – Open Source University Meetup
Ações
> Nesteseção podemos conter diversas ações
separadas por ponto e vírgula (;).
#!/usr/sbin/dtrace -s
syscall:libc:main:entry
cpu == 0
{
printf(“%4d”,cpu);
}
12. > Conhecendo o Dtrace – Open Source University Meetup
Referências
> Oracle Technology Network
http://oracle.com/technology
> DTrace (Dynamic Tracing) Community
http://hub.opensolaris.org/bin/view/Community+Group+dtrace/
> BigAdmin System Administration Portal – Dtrace
http://www.sun.com/bigadmin/content/dtrace/index.jsp
13. Dtrace
Conhecendo o
Daniel Cunha
OSUM/CEOSUG Leader
danielsoro@gmail.com
http://osum.sun.com/profile/danielcunha