Capítulo 43. OProfile

OProfile é uma ferramenta de monitoramento de desempenho do sistema, com baixa sobrecarga. Utiliza o hardware de monitoramento de desempenho no processador para recuperar informações sobre o kernel e executáveis do sistema. Por exemplo: quando a memória é referenciada, o número de pedidos do cache L2 e o número de interrupções de hardware recebidas. Em um sistema Red Hat Enterprise Linux, o pacote RPM oprofile deve estar instalado para usar esta ferramenta.

Muitos processadores incluem hardware de monitoramento do desempenho. Este hardware possibilita detectar quando determinados eventos ocorrem (como quando os dados requisitados não estão no cache). O hardware normalmente toma a forma de um ou mais contadores que são incrementados cada vez que ocorre um evento. Quando o valor do contador "adia," é gerada uma interrupção, possibilitando controlar a quantidade de detalhes (e consequentemente de sobrecarga) produzida pelo monitoramento do desempenho.

O OProfile usa este hardware (ou um substituto baseado em timer nos casos em que não há hardware de monitoramento de desempenho) para coletar amostras de dados relacionados ao desempenho cada vez que um contador gera uma interrupção. Estas amostras são gravadas periodicamente no disco; posteriormente, os dados contidos nestas amostras podem então ser usados para gerar relatórios de desempenho dos sistemas e aplicações.

ImportanteImportante
 

O suporte ao kernel do OProfile no Red Hat Enterprise Linux 3 é baseado no código do kernel 2.5 em desenvolvimento. Quando nos referimos à documentação do OProfile, as funcionalidades específicas da versão 2.5 se aplicam ao OProfile do Red Hat Enterprise Linux 3, apesar da versão do kernel ser 2.4. Do mesmo modo, as funcionalidades do OProfile específicas do kernel 2.4 não se apicam ao Red Hat Enterprise Linux 3.

O OProfile é uma ferramenta útil, mas mas saiba de algumas limitações ao utilizá-lo:

No Red Hat Enterprise Linux, somente os kernels de multi-processador (multi-processor, SMP) têm o suporte ao OProfile habilitado. Para determinar qual kernel está rodando, invoque o seguinte comando:

uname -r

Se a versão do kernel retornada termina em .entsmp, o kernel do multi-processador está rodando. Caso contrário, instale-o via Red Hat Network ou pelos CDs da distribuição, mesmo se o sistema não for multi-processador. O kernel multi-processador pode rodar em um sistema de processador simples.

43.1. Visão Geral das Ferramentas

A Tabela 43-1 traz uma visão geral das ferramentas oferecidas com o pacote oprofile.

ComandoDecrição
opcontrol

Configura quais dados são coletados. Consulte a Seção 43.2 para mais detalhes.

op_help

Exibe eventos disponíveis do processador do sistema junto a uma breve descrição de cada.

op_merge

Mistura diversas amostras do mesmo executável. Consulte a Seção 43.5.4 para mais detalhes.

op_timeOferece uma visão geral de todos os executáveis perfilados. Consulte a Seção 43.5.1 para mais detalhes.
op_to_sourceCria uma fonte anotada para um executável se a aplicação foi compilada com símbolos de depuração. Consulte a Seção 43.5.3 para mais detalhes.
oprofiled

Roda como um daemon para gravar dados da amostra no disco periodicamente.

oprofpp

Recupera dados do perfil. Consulte a Seção 43.5.2 para mais detalhes.

op_import

Converte o arquivo do banco de dados de amostras de um formato diferente para o formato nativo do sistema. Use esta opção somente ao analisar um banco de dados de amostras de uma arquitetura diferente.

Tabela 43-1. Comandos do OProfile