2009-11-18 7 views
12

Cuando controlo una aplicación remota (usando jstatd) no puedo ni perfilar ni controlar el consumo de CPU. La supervisión de montón (siempre que no use G1) funciona. jvisualvm proporciona el mensaje "No admitido para esta JVM". en la ventana del gráfico de la CPU.CPU y perfiles no admitidos para la sesión remota de jvisualvm

¿Falta algo en mi configuración? Google mostró muy pocos resultados.

El entorno local (Mac OS X 10.6):

java version "1.6.0_15" 
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219) 
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode) 

El entorno remoto (Linux versión 2.6.16.27-0.9-SMP (gcc versión 4.1.0 (SUSE Linux))):

java version "1.6.0_16" Java(TM) SE 
Runtime Environment (build 
1.6.0_16-b01) Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode) 

La supervisión local funciona como se anuncia.

Respuesta

13

La creación de perfiles remotos de código y asignación no es compatible con Visual VM. Esto es una mierda, sin embargo, si desea habilitar el gráfico de la CPU se puede hacer esto al permitir JMX con

-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=12345 

Es posible que necesite añadir algunos ajustes de autenticación también en base a su red. La configuración de JMX le dará el uso de la CPU y el estado de la secuencia, así como también un jstack remoto.

una lista de características para la versión remota se puede encontrar aquí: Visual VM features

EDITAR obtener la última versión de la máquina virtual visual 1.2.1 y descargar la VisaulVM-Sampler. Esto leerá de una conexión JMX para mostrar la información de perfil.

+0

¡Trabajos! +1 para visualvm 1.2.1 y la sugerencia de complemento aceptada. – yawn

+2

Seguimiento: JMX en 1.6 tiene la seguridad habilitada por defecto. Para el desarrollo, es posible que desee deshabilitar la seguridad, consulte http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#no_security – yawn

+0

"El perfilado remoto del código y la asignación no son compatibles con Visual VM ": ¿esto sigue siendo cierto a partir de jvisualvm 1.3.8? – Yar

1

¿Es porque la versión remota es (aunque ligeramente) mayor que la versión local?

4

Conexión del programa eclipse java.

Paso 1: garantizar el Eclipse -> Preferencias -> Java -> JRE instalados está apuntando a la misma JDK donde se ha iniciado el VisualVM.

Paso 2: Asegúrese de clic derecho -> configuración de ejecución tiene la siguiente

-Dcom.sun.management.jmxremote = true -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun. management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.port = 16001

Paso 3: importante siga la sugerencia a continuación.

https://visualvm.java.net/troubleshooting.html#jpswin2

Descripción: Un diálogo de error que indica que las aplicaciones locales no pueden ser controlados se muestra inmediatamente después del inicio VisualVM. Las aplicaciones Java que se ejecutan localmente se muestran como (pid ###).

Resolución: Esto puede suceder en sistemas Windows si el nombre de usuario contiene letras mayúsculas. En este caso, el nombre de usuario es UserName, pero el directorio jvmstat creado por JDK es% TMP% \ hsperfdata_username.Para solucionar el problema, salga de todas las aplicaciones Java, elimine el directorio% TMP% \ hsperfdata_username y cree el nuevo directorio% TMP% \ hsperfdata_UserName.

También intente JVMMonitor es un plugin decente para la supervisión del programa de eclipse independiente.

Cuestiones relacionadas