Baixe o agente YourKit para o seu sistema operacional (veja os links na parte inferior da página).
Problema
Como eu configuro o criador de perfis do YourKit Java para trabalhar com CQ3.x ou CQ4.x?
Solução
Instalar o YourKit
-
-
Instale o criador de perfis do YourKit.
-
Inicie o criador de perfis do YourKit (o JDK 1.5 é necessário para executar o criador de perfis).
- Windows: Inicie o "YourKit Java Profiler" no menu Iniciar.
- Linux, Solaris: Execute YourKit Java Profiler Home > /bin/yjp.sh.
- Mac OS X: Quando o aplicativo baixado é descompactado, clique no seu ícone.
Ativar criação de perfis
É possível ativar a criação de perfis diretamente em um servidor IDE ou J2EE. No entanto, pode ser melhor permitir manualmente que a criação de perfil seja independente dos servidores IDE ou J2EE. O procedimento difere de sistema operacional para sistema operacional.
SO | Ação |
---|---|
Windows, Java de 32 bits | adicionar <!YourKit Java Profiler Home>\bin\win32 para o PATH |
Windows, Java de 64 bits | adicionar <!YourKit Java Profiler Home>\bin\win-amd64 para o PATH |
Mac OS X | adicionar <!YourKit Java Profiler Home>/bin/mac para o DYLD_LIBRARY_PATH |
Linux x86, Java de 32 bits | adicionar <!YourKit Java Profiler Home>/bin/linux-x86-32 para o LD_LIBRARY_PATH |
Linux AMD64, Java de 64 bits | adicionar <!YourKit Java Profiler Home>/bin/linux-amd64 para o LD_LIBRARY_PATH |
Solaris SPARC, Java de 32 bits | adicionar <!YourKit Java Profiler Home>/bin/solaris-sparc-32 para o LD_LIBRARY_PATH |
Solaris SPARC, Java de 64 bits | adicionar <!YourKit Java Profiler Home>/bin/solaris-sparc-64 para o LD_LIBRARY_PATH |
Solaris x86, Java de 32 bits | adicionar <!YourKit Java Profiler Home>/bin/solaris-x86-32 para o LD_LIBRARY_PATH |
Solaris x86, Java de 64 bits (AMD64) | adicionar <!YourKit Java Profiler Home>/bin/solaris-x86-64 para o LD_LIBRARY_PATH |
Verifique o agente do criador de perfis
Para verificar se o Java pode carregar o agente do criador de perfis, você pode chamar o seguinte comando que imprime uma descrição dos parâmetros do agente:
- Java 5 ou 6
- java -agentlib:yjpagent=help
- Java 1.3 ou 1.4
- java -Xrunyjpagent:help
Integrar a biblioteca do agente no aplicativo
Para poder fazer o perfil de um aplicativo Java, é necessário fornecer à ferramenta YourKit uma interface para o aplicativo Java. Você integra a biblioteca do agente YourKit na JVM em que o aplicativo de destino que você deseja fazer o perfil está sendo executado. Primeiro, ative a criação de perfis fornecendo o caminho para a respectiva biblioteca do agente do sistema operacional na qual a JVM está sendo executada (consulte Ativando a criação de perfis). Inclua as variáveis de ambiente de configuração no script de início do seu aplicativo.
Por exemplo, em um script de início de CQ no Linux, faça o seguinte:
#--------------------------------------------------------------------- # enables the YourKit Java Profiler #--------------------------------------------------------------------- YJP_HOME="/home/honwai/yjp-6.0.16/bin/linux-x86-32" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$YJP_HOME
Essa configuração disponibiliza a biblioteca do agente para a JVM. Agora, é uma questão de dizer à JVM para realmente integrar essa biblioteca, que difere de acordo com a versão da JVM em uso:
Versão Java | Opção JVM |
---|---|
1.3/1.4 | java -Xrunyjpagent |
5 ou mais recente | java -agentlib:yjpagent |
Agora você está pronto para iniciar seu aplicativo e a criação de perfis. A biblioteca de agentes imprime algumas informações para a saída padrão (no caso de CQ, é server(logs/startup.log):
[YourKit Java Profiler 6.0.16] Usando o JVMPI (Linux; JVM de 32 bits)
[YourKit Java Profiler 6.0.16]DICA: Use o Java 5 (ou mais recente) quando possível!
[YourKit Java Profiler 6.0.16] O agente do Profiler está escutando na porta 10001...
Dica: No CQ 4.2, o script serverctl tornou-se mais avançado, permitindo o fornecimento de várias opções na inicialização. Inclui a opção para iniciar a JVM com a biblioteca do agente YourKit. Configurar as variáveis de env descritas acima ainda é obrigatório, mas configurar a opção de JVM adicional não é:
linuxbox:/opt/day/cq-4.2/server# ./start --profile
Para obter uma lista completa das opções disponíveis, digite./serverctl e você obtém uma lista de todas as opções disponíveis.
Conectando com o criador de perfis do YourKit ao aplicativo
Ao iniciar um aplicativo com criação de perfis ativada, a biblioteca do agente escolhe uma porta livre disponível no sistema. Não é necessário conhecer a porta. A ferramenta YourKit pode se conectar automaticamente a um aplicativo com perfil em execução, local ou remotamente. Se encontrar mais de um aplicativo, você será solicitado a selecionar um em particular.
Também é possível especificar uma porta dedicada se as configurações de segurança locais (por exemplo, firewall) não permitirem a escolha de portas arbitrárias. Consulte a tabela a seguir para obter uma lista completa das opções que podem ser passadas para a biblioteca do agente.
Opções de biblioteca do agente
Opção | Descrição |
---|---|
disablealloc | (Apenas Java 5 e mais recente / JVMTI) Não instrumente o código de bytes com instruções necessárias para a gravação de alocação de objetos. |
disablecounts | (Java 5 e mais recente / somente JVMTI) Não instrumente o código de bytes com instruções necessárias para o rastreamento da CPU. Apenas a amostragem da CPU está disponível. |
disablej2ee | (Java 5 e mais recente / somente JVMTI) Não instrumente o código de bytes com as instruções necessárias para a criação de perfis do J2EE. |
amostragem | Inicie o aplicativo Java com a amostragem da CPU ativada. Você não precisa criar o perfil da CPU desde o início. Em vez disso, em muitos casos, é melhor iniciar ou interromper a medição posteriormente a partir da interface do usuário ou usando a API do Profiler. |
Rastreando | Inicie o aplicativo Java com o rastreamento da CPU ativado. Você não precisa criar o perfil da CPU desde o início. Em vez disso, em muitos casos, é melhor iniciar ou interromper a medição posteriormente a partir da interface do usuário ou usando a API do Profiler. Esta opção não pode ser usada em combinação com 'disablecounts'. |
noj2ee | Não execute a criação de perfis de alto nível do J2EE. Essa opção afeta apenas a criação de perfis da CPU iniciada com 'amostragem' ou 'rastreamento'. |
alocar | Inicie o aplicativo Java com a gravação da alocação de objeto iniciada. Todos os objetos são registrados. Você não precisa registrar alocações desde o início; em vez disso, você pode iniciar ou parar a gravação mais tarde a partir do Profiler ou usando a API do Profiler. Esta opção não pode ser usada em combinação com 'disablealloc'. |
allocadaptive | Inicie o aplicativo Java com a gravação da alocação de objeto iniciada. São registrados tantos objetos quanto possível, mantendo a sobrecarga em nível moderado. Você não precisa registrar alocações desde o início; em vez disso, você pode iniciar ou parar a gravação mais tarde a partir do Profiler ou usando a API do Profiler. Esta opção não pode ser usada em combinação com 'disablealloc'. |
usedmem=<percent> | Captura automática de instantâneo de memória quando a memória de heap usada atinge o limite. |
onexit=memory | Sempre capture o instantâneo da memória ao sair. O instantâneo da CPU é capturado automaticamente se a criação de perfis da CPU estiver ativada quando o aplicativo com perfil sair. |
onexit=telemetry | Capture instantâneo de telemetria na saída. Essa opção é usada automaticamente quando o aplicativo com perfil é iniciado a partir do IDE. |
port=<value> | Especifique a porta que o agente do criador de perfis escuta para comunicação com o Profiler. Por padrão, qualquer porta livre é escolhida. |
onlylocal | Permitir somente conexões locais para aplicativos com perfil |
dir=<directory for="for" snapshots="snapshots"> | Especifique o diretório em que os instantâneos são criados. Por padrão, o diretório <user home="home">/Snapshots é usado. |
quiet | Suprime as mensagens de diagnóstico que o agente do criador de perfis imprime no console. |
help | Imprima uma breve descrição dos parâmetros do agente. |
Separe várias opções com vírgulas. Note que o Java requer : after -Xrunyjpagent but = after -agentlib:yjpagent.
Exemplos (Java 5 ou mais recente):
java -agentlib:yjpagent FooClass java -agentlib:yjpagent=onexit=memory,dir=c:\MySnapshots FooClass java -agentlib:yjpagent=usedmem=70 FooClass
Exemplos (Java 1.3 / 1.4):
java -Xrunyjpagent FooClass java -Xrunyjpagent:onexit=memory,dir=c:\MySnapshots FooClass java -Xrunyjpagent:usedmem=70 FooClass
Documentação
Uma vez instalado o criador de perfis do YourKit, há uma extensa documentação em HTML no diretório de instalação, em <!YourKit Java Profiler Home>/docs/help/index.html. Ele explica detalhadamente como integrar a biblioteca de agentes no aplicativo de destino que é o assunto da criação de perfil. Também fornece muitas opções úteis que podem ser passadas para o agente. Por exemplo:
- gerar um heap-dump quando o aplicativo sair
- gerar um heap-dump quando um limite for atingido
Essas opções podem ser encontradas em <!YourKit Java Profiler Home>/docs/help/agent.html.
A versão atual 7.0 não vem com documentação, você pode encontrá-la em nosso servidor de configuração:
- \\setup\install\profiling\yjp-6.0\docs\help\index.html