Introducao basica – o que eh tracing?
Gravacao de eventos .
Nao eh logging, pois esta ligado a eventos em baixo nivel e muito mais rapidos nao sendo tambem profiling
Pode ser no lado em eventos de usuario e eventos do kernel. A gravacao eh feita em runtime e portanto ha uma interferencia, que é chamada de overhead. O numero de eventos gravados tambem varia, ocorrendo por vezes perda de alguns eventos a depender da ferramenta de tracing.
Basicamente o que deve ser feito?
Rodar o aplicativo, ligar o trace e fazer a analise.
Ferramentas
LTTNG
Eh um tracing dos eventos do kernel e dominio usuario com baixo overhead.
Eh possivel analisar apenas alguns eventos do kernel ou todos os eventos, assim como eh possivel fazer a analise de eventos padrao no kernel ou criar pontos de tracing no proprio codigo (aplicativo) para fazer a gravacao.
Para fazer a analise dos traces, eh necessaria a ferramenta de analise dos traces, que pode ser o BabelTrace, ou o TraceCompass. É desenvolvido pela EfficiOS.
Dtrace
É um framework para analises de performance e deteccao de erros que eh incluso por padrao em diversos sistemas operacionais, incluindo Solaris, Mac OS X and FreeBSD.
perf
É uma ferramenta para profiling para Linux 2.6+. Um interessante tutorial pode ser encontrado aqui: https://perf.wiki.kernel.org/index.php/Tutorial
strace
É uma ferramenta para debbuing e diagnostico Pode alterar sua aplicacao a medida que usa ptrace no kernel, tendo um overhead grande.
ftrace
É um framework para tracing em Linux desenvolvido por Steven Rostedt e que foi incorporado ao kernel do Linux.