Descargue el agente YourKit para su sistema operativo (vea los vínculos en la parte inferior de la página).
Problema
¿Cómo configuro YourKit Java Profiler para que funcione con CQ3.x o CQ4.x?
Solución
Instalación de YourKit
-
-
Instale el perfilador YourKit.
-
Inicie el perfilador YourKit (JDK 1.5 es necesario para ejecutar el perfilador).
- Windows: Inicie “YourKit Java Profiler” desde el menú Inicio.
- Linux, Solaris: Ejecute YourKit Java Profiler Home > /bin/yjp.sh.
- Mac OS X: Cuando la aplicación descargada se descomprima, haga clic en su icono.
Permita la creación de perfiles
Es posible habilitar la creación de perfiles directamente en un servidor IDE o incluso J2EE. Sin embargo, puede ser mejor permitir que la creación manual de perfiles sea independiente de los servidores IDE o J2EE. El procedimiento difiere de un sistema operativo a otro.
Sistema operativo | Acción |
---|---|
Windows, Java de 32-bit | añadir <!YourKit Java Profiler Home>\bin\win32 a la ruta |
Windows, Java de 64 bits | añadir <!YourKit Java Profiler Home>\bin\win-amd64 a la ruta |
macOS X | añadir <!YourKit Java Profiler Home>/bin/mac a DYLD_LIBRARY_PATH |
Linux x86, Java de 32-bit | añada <!YourKit Java Profiler Home>/bin/linux-x86-32 a LD_LIBRARY_PATH |
Linux AMD64, Java de 64 bits | añada <!YourKit Java Profiler Home>/bin/linux-amd64 a LD_LIBRARY_PATH |
Solaris SPARC, Java de 32 bits | añadir <!YourKit Java Profiler Home>/bin/solaris-sparc-32 a LD_LIBRARY_PATH |
Solaris SPARC, Java de 64 bits | añadir <!YourKit Java Profiler Home>/bin/solaris-sparc-64 a LD_LIBRARY_PATH |
Solaris x86, Java de 32 bits | añadir <!YourKit Java Profiler Home>/bin/solaris-x86-32 a LD_LIBRARY_PATH |
Solaris x86, Java de 64 bits (AMD64) | añadir <!YourKit Java Profiler Home>/bin/solaris-x86-64 a LD_LIBRARY_PATH |
Compruebe el agente de perfilado
Para comprobar que Java puede cargar el agente de perfilado, puede llamar al siguiente comando que imprime una descripción de los parámetros del agente:
- Java 5 o 6
- java -agentlib:yjpagent=help
- Java 1.3 o 1.4
- java -Xrunyjpagent:help
Integración de la biblioteca de agentes en la aplicación
Para poder perfilar una aplicación Java, es necesario proporcionar a la herramienta YourKit una interfaz con la aplicación Java. Debe integrar la biblioteca de agentes YourKit en la JVM donde se está ejecutando la aplicación de destino que desea perfilar. En primer lugar, habilite la creación de perfiles proporcionando la ruta a la biblioteca de agentes del sistema operativo correspondiente en la que se está ejecutando la JVM (consulte Habilitación de la creación de perfiles). Incluya variables de entorno de configuración en el script de inicio de la aplicación.
Por ejemplo, en un script de inicio CQ bajo Linux, haga lo siguiente:
#--------------------------------------------------------------------- # 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
Esta configuración hace que la biblioteca de agentes esté disponible para la JVM. Ahora se trata de decirle a JVM que integre realmente esta librería, que difiere según la versión del JVM en uso:
Versión Java | Opción JVM |
---|---|
1.3/1.4 | java -Xrunyjpagent |
5 o más reciente | java -agentlib:yjpagent |
Ahora está listo para iniciar su aplicación y la creación de perfiles. La biblioteca de agentes otorga cierta información en los resultados estándar (en el caso de CQ es server(logs/startup.log):
[YourKit Java Profiler 6.0.16] Uso de JVMPI (Linux; 32 bit JVM)
[YourKit Java Profiler 6.0.16] *** CONSEJO ***: Use Java 5 (o más reciente) cuando sea posible.
[YourKit Java Profiler 6.0.16] El agente de perfilado está escuchando en el puerto 10001...
Sugerencia: En CQ 4.2, el script serverctl se ha vuelto más avanzado, lo que permite ofrecer varias opciones al inicio. Incluye la opción de iniciar la JVM con la librería de agentes YourKit. La configuración de las variables de entorno descritas anteriormente sigue siendo obligatoria, pero la configuración de la opción adicional de JVM no lo es:
linuxbox:/opt/day/cq-4.2/server# ./start --profile
Para obtener una lista completa de las opciones disponibles, escriba ./serverctl y obtendrá una lista de todas las opciones disponibles.
Conexión del perfilador YourKit a la aplicación
Al iniciar una aplicación con la función de perfil habilitada, la biblioteca de agentes elige un puerto libre que está disponible en el sistema. No es necesario conocer el puerto. La herramienta YourKit puede conectarse automáticamente a una aplicación de perfil en ejecución, ya sea local o remotamente. Si encuentra más de una aplicación, se le pedirá que seleccione una en particular.
También es posible especificar un puerto dedicado si la configuración de seguridad local (por ejemplo, firewall) no permite elegir puertos arbitrarios. Consulte la siguiente tabla para obtener una lista completa de las opciones que se pueden pasar a la biblioteca del agente.
Opciones de biblioteca de agentes
Opción | Descripción |
---|---|
disablealloc | (Java 5 y versiones más recientes/JVMTI solamente) No instrumente bytecode con las instrucciones necesarias para la grabación de la asignación de objetos. |
disablecounts | (Java 5 y versiones más recientes/JVMTI solamente) No instrumente bytecode con las instrucciones necesarias para el rastreo de la CPU. Solo se dispone de muestreo de CPU. |
disablej2ee | (Java 5 y versiones más recientes/JVMTI solamente) No instrumente bytecode con las instrucciones necesarias para la creación de perfiles J2EE. |
muestreo | Inicie la aplicación Java con el muestreo de CPU activado. No tiene que perfilar la CPU desde el principio. En cambio, en muchos casos, es mejor iniciar o detener la medición más adelante desde la interfaz de usuario o utilizando la API Profiler. |
rastreo | Inicie la aplicación Java con el rastreo de CPU activado. No tiene que perfilar la CPU desde el principio. En cambio, en muchos casos, es mejor iniciar o detener la medición más adelante desde la interfaz de usuario o utilizando la API Profiler. Esta opción no se puede utilizar en combinación con disablecounts. |
noj2ee | No realice perfiles de alto nivel J2EE. Esta opción solo afecta a la creación de perfiles de CPU iniciada con “muestreo” o “rastreo”. |
asignación | Inicie la aplicación Java con la grabación de la asignación de objetos iniciada. Todos los objetos son registrados. No es necesario que registre las asignaciones desde el principio, sino que puede iniciar o detener la grabación más tarde desde el perfilador o utilizando la API de Profiler. Esta opción no se puede utilizar en combinación con disablealloc. |
allocadaptive | Inicie la aplicación Java con la grabación de la asignación de objetos iniciada. Se registran tantos objetos como sea posible, manteniendo la sobrecarga a un nivel moderado. No es necesario que registre las asignaciones desde el principio, sino que puede iniciar o detener la grabación más tarde desde el perfilador o utilizando la API de Profiler. Esta opción no se puede utilizar en combinación con disablealloc. |
usedmem=<percent> | Captura automática de instantáneas de memoria cuando la memoria acumulada utilizada alcanza el umbral. |
onexit=memory | Siempre captura la instantánea de la memoria al salir. La instantánea de la CPU se captura automáticamente si se habilita la creación de perfiles de CPU cuando se cierra la aplicación perfilada. |
onexit=telemetry | Captura instantánea de telemetría en el cierre. Esta opción se utiliza automáticamente cuando la aplicación perfilada se inicia desde el IDE. |
port=<value> | Especifique el puerto en el que el agente de perfilado escucha para la comunicación con el perfilador. De forma predeterminada se elige cualquier puerto libre. |
onlylocal | Permitir solo conexiones locales a la aplicación perfilada |
dir=<directory for="for" snapshots="snapshots"> | Especifique el directorio donde se crean las instantáneas. De forma predeterminada, se utiliza el directorio <user home="home">/Snapshots. |
quiet | Suprima los mensajes de diagnóstico que el agente de perfilado imprime en la consola. |
help | Imprima una breve descripción de los parámetros del agente. |
Separe las opciones múltiples con comas. Preste atención a que Java requiere :después -Xrunyjpagent pero = después -agentlib:yjpagent.
Ejemplos (Java 5 o versiones más recientes):
java -agentlib:yjpagent FooClass java -agentlib:yjpagent=onexit=memory,dir=c:\MySnapshots FooClass java -agentlib:yjpagent=usedmem=70 FooClass
Ejemplos (Java 1.3/1.4):
java -Xrunyjpagent FooClass java -Xrunyjpagent:onexit=memory,dir=c:\MySnapshots FooClass java -Xrunyjpagent:usedmem=70 FooClass
Documentación
Una vez que se instala el perfilador YourKit, hay una extensa documentación HTML en el directorio de instalación, en <!YourKit Java Profiler Home>/docs/help/index.html. Explica en detalle cómo integrar la biblioteca de agentes en la aplicación de destino que es objeto de la creación de perfiles. También proporciona muchas opciones útiles que se pueden pasar al agente. Por ejemplo:
- la generación de un volcado de memoria una vez que la aplicación se cierra
- generar un volcado de memoria una vez que se alcanza un determinado umbral
Estas opciones se encuentran en <!YourKit Java Profiler Home>/docs/help/agent.html.
La versión actual 7.0 no viene con documentación, puede encontrarla en nuestro servidor de configuración:
- \\setup\install\profiling\yjp-6.0\docs\help\index.html
Páginas relacionadas
Inicia sesión en tu cuenta