Guia de rastreamento dinâmico Solaris

Prefácio

O DTrace é uma estrutura de rastreamento dinâmico abrangente para o sistema operacional Solaris™. O DTrace fornece uma potente infra-estrutura que permite que administradores, desenvolvedores e pessoal de serviço respondam de forma concisa a perguntas arbitrárias sobre o comportamento do sistema operacional e programas do usuário. O Guia de rastreamento dinâmico Solaris descreve como usar o DTrace para observar, depurar a ajustar o comportamento do sistema. Este manual inclui também uma referência completa para ferramentas de observabilidade incluídas no DTrace e a linguagem de programação D.


Observação –

Esta versão do Solaris suporta os sistemas que usam as famílias de arquitetura de processadores SPARC® e x86: UltraSPARC®, SPARC64, AMD64, Pentium e Xeon EM64T. Os sistemas aceitos aparecem na Solaris 10 Hardware Compatibility List em http://www.sun.com/bigadmin/hcl/. Este documento cita quaisquer diferenças de implementação entre os tipos de plataformas.

Neste documento, o termo “x86” refere-se aos sistemas de 64–bits e 32–bits fabricados por meio de processadores compatíveis com as famílias de produtos AMD64 ou Intel Xeon/Pentium. Para obter os sistemas suportados, consulte a Lista de Compatibilidade de Hardware Solaris.


Quem deve usar este livro

Se você quer conhecer o comportamento do seu sistema, o DTrace é a ferramenta ideal. O DTrace é um abrangente recurso de rastreamento dinâmico incluído no Solaris. O recurso DTrace pode ser usado para examinar o comportamento dos programas do usuário. O recurso DTrace também pode ser usado para examinar o comportamento do sistema operacional. O DTrace pode ser usado por administradores do sistema ou desenvolvedores de aplicativo e é adequado para o uso com sistemas de produção dinâmicos. O DTrace permitirá que você explore o sistema para compreender como ele funciona, rastreie problemas de desempenho em muitas camadas do software ou localize a causa de um comportamento anormal. Como você irá perceber, o DTrace permite que você crie seus próprios programas personalizados para instrumentar dinamicamente o sistema e fornecer respostas imediatas e concisas para questões arbitrárias que você pode formular usando a linguagem de programação D do DTrace.

O DTrace permite que todos os usuários do Solaris:

O DTrace permite que os desenvolvedores e administradores do Solaris:

Este guia irá ensinar tudo que você precisa saber sobre o DTrace. Se você estiver familiarizado com uma linguagem de programação como a C ou uma linguagem de script como awk(1) ou perl(1), aprenderá o DTrace e a linguagem de programação D mais rapidamente, mas não é necessário ser especialista nessas áreas. Se você nunca tiver escrito um programa ou script em qualquer linguagem, o Informações relacionadas fornece referências a outros documentos que você possa considerar úteis.

Como este livro é organizado

O Capítulo 1Introdução fornece um rápido tour de todo o recurso DTrace e apresenta aos leitores a linguagem de programação D. O Capítulo 2Tipos, operadores e expressões, o Capítulo 3Variáveis e o Capítulo 4Estrutura de programa em D discutem os fundamentos da linguagem D com mais detalhes e explicam como os programas em D são convertidos em instrumentação dinâmica. Esse grupo inicial de capítulos deve ser lido primeiro por todos os leitores.

O Capítulo 5Ponteiros e matrizes, o Capítulo 6Seqüências, Capítulo 7Structs e uniões e o Capítulo 8Definições de tipo e de constante discutem os recursos restantes da linguagem D, sendo que a maioria deles já serão familiares aos programadores de C, C++ e JavaTM. Os leitores que não estejam familiarizados com alguma dessas linguagens devem ler esses capítulos. Os programadores com mais experiência podem prosseguir diretamente para os capítulos posteriores.

O Capítulo 9Agregações e o Capítulo 10Ações e sub-rotinas discutem as poderosas ferramentas para a agregação de dados e o conjunto de ações incorporadas que podem ser usadas para criar experimentos de rastreamentos. Todos os leitores devem ler atentamente esses capítulos.

O Capítulo 11Buffers e armazenamento em buffer descreve as diretivas do DTrace para armazenamento de dados em buffer e como elas podem ser configuradas. Esse capítulo deve ser lido por usuários quando estiverem familiarizados com a construção e execução de programas em D.

O Capítulo 12Formatação de saída descreve as ações de formatação de saída de D assim como a diretiva padrão para formatar os dados do rastreamento. Os leitores que estejam familiarizados com a função printf() de C podem ler rapidamente esse capítulo. Os leitores que nunca tenham visto a função printf() antes devem ler esse capítulo com cuidado.

O Capítulo 13Rastreio especulativo discute o recurso DTrace para especulativamente confirmar dados em um buffer de rastreamento. Esse capítulo deve ser lido por usuários que precisem usar o DTrace em uma situação em que os dados devam ser rastreados antes de entender se isso é relevante para a questão atual.

O Capítulo 14Utilitário dtrace(1M) fornece uma referência completa para o utilitário de linha de comando dtrace, similar à página correspondente do manual online. Os leitores podem querer consultar esse capítulo quando várias opções de linha de comando forem apresentadas em outra parte do livro. O Capítulo 15Script depois discute como o utilitário dtrace pode ser usado para construir scripts de D executáveis e processar seus argumentos de linha de comando e o Capítulo 16Opções e ajustáveis descreve as opções que podem ser ajustadas na linha de comando ou de um programa em D.

O grupo de capítulos que vai do Capítulo 17Provedor do dtrace ao Capítulo 32Provedor fasttrap discute os vários provedores de DTrace que podem ser usados para instrumentar vários aspectos do sistema Solaris. Todos os leitores devem ler brevemente esses capítulos para se familiarizar com os vários provedores e depois retornar para ler determinados capítulos em detalhes, se necessário.

O Capítulo 33Rastreio de processo do usuário discute exemplos do uso de DTrace para instrumentar processos do usuário. O Capítulo 34Rastreio definido estaticamente em aplicativos do usuário descreve como programadores de aplicativos podem adicionar testes e provedores de DTrace personalizados em aplicativos do usuário. Os leitores que forem administradores ou desenvolvedores de programa do usuário e quiserem usar o DTrace para investigar o comportamento do processo do usuário devem ler esses capítulos.

O Capítulo 35Segurança e os capítulos restantes discutem tópicos avançados como segurança, controle de versão e atributos de estabilidade do DTrace e como realizar rastreamento de inicialização e post-mortem com o DTrace. Esses capítulos são destinados a usuários avançados do DTrace.

Informações relacionadas

Estes livros e documentos são recomendados e relacionados às tarefas que você precisa realizar com o DTrace:

Você pode compartilhar suas experiências e scripts do DTrace com o restante da comunidade DTrace na Web em http://www.sun.com/bigadmin/content/dtrace/ .

Documentação, suporte e treinamento

O site da Sun na Web fornece informações sobre os seguintes recursos adicionais:

Convenções tipográficas

A tabela a seguir descreve as convenções tipográficas usadas neste livro.

Tabela P–1 Convenções tipográficas

Fonte 

Significado 

Exemplo 

AaBbCc123

Os nomes de comandos, arquivos e diretórios e saída para computador na tela 

Edite o arquivo .login.

Use ls -a para listar todos os arquivos.

nome_da_máquina% you have mail.

AaBbCc123

O que você digitou, contrastado com a saída para computador na tela 

nome_da_máquina% su

Password:

aabbcc123

Espaço reservado: substituir por um nome ou valor real 

O comando para remover um arquivo é rm nome do arquivo.

AaBbCc123

Títulos de livro, novos termos e termos a serem enfatizados 

Leia o Capítulo 6 do Guia do Usuário.

Um cache é uma cópia que é armazenada localmente.

Não salve o arquivo.

Nota: Alguns itens enfatizados aparecem on-line em negrito.

Prompts do shell em exemplos de comando

A tabela a seguir mostra prompts padrão do sistema UNIX® e o prompt de superusuário para o shell C, shell Bourne e shell Korn.

Tabela P–2 Prompts do shell

Shell 

Prompt 

Shell C 

nome_da_máquina%

Shell C para superusuário 

nome_da_máquina#

Shell Bourne e shell Korn 

$

Shell Bourne e shell Korn para superusuário 

#