java - tamaño - VisualVM no puede muestrear memoria
programa stats para calcular muestra (10)
Acabo de encontrarme con este mismo problema y las respuestas anteriores resolvieron mi problema, pero me tomó un tiempo averiguar cómo. En caso de que alguien más aún tenga problemas y termine en el hilo, estaba usando el JDK que forma parte del servidor weblogic configurado a través de Eclipse y no el JDK que instalé por separado. Sigo siendo un programador junior y no estaba juntando 2 y 2 hasta que empecé a revisar mi configuración de eclipse y verifiqué mis JRE instalados.
Corrí el jvisualvm.exe desde el weblogic jdk y todo funcionó.
Tengo una instancia de Tomcat con el parámetro JMXRemote configurado. El VisualVM local es capaz de obtener una muestra en la CPU, sin embargo, no para la memoria. El botón de memoria está en gris con un resumen que dice: "Muestreo de memoria: no disponible. No se puede conectar a la aplicación de destino. Asegúrese de que la aplicación se ejecute en un JDK 6 o JDK 7 compatible"
Parámetro JMXRemote:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Versión Tomcat JDK:
JDK1.6.0.30
Versión de VisualVM:
Version: 1.6.0_30 (Build 1320-110325); platform 110131-9c8b3bfb3a1e
System: Windows Server 2008 R2 (6.1) , amd64 64bit
Java: 1.6.0_30; Java HotSpot(TM) 64-Bit Server VM (20.5-b03, mixed mode)
Vendor: Sun Microsystems Inc., http://java.sun.com/
Environment: Cp1252; en_US (visualvm)
Userdir: C:/Users/Administrator/AppData/Roaming/.visualvm/7
Clusters: C:/Program Files/Java/jdk1.6.0_30/lib/visualvm/platform
C:/Program Files/Java/jdk1.6.0_30/lib/visualvm/visualvm
C:/Program Files/Java/jdk1.6.0_30/lib/visualvm/profiler
Versión tomcat:
Tomcat 6.0.32
Estoy ejecutando tanto VisualVM como Tomcat en el servidor win 2008. ¿Algo que hice mal?
Aquí está mi solución para un problema similar: https://.com/a/16330238/715483
Usted puede resolver este error por
$ ssh -Y usuario @ remotemachine
$ wget http://java.net/projects/visualvm/downloads/download/release135/visualvm_135.zip
$ descomprimir visualvm_135.zip
$ cd visualvm_135 / bin
$ ./visualvm
Esta instancia de visualvm tendrá todas las funciones, incluida la memoria y el muestreo de la CPU.
Lea más sobre esto aquí: http://shahriarinia.blogspot.com/2013/05/java-cpumemory-heap-usage-monitoring.html
Asegúrese de que su VirtualVM / JDK sea una copia de 32 bits si su JRE es. Si está utilizando Eclipse, verifique el JRE seleccionado en la sección JRE instalado.
En primer lugar, JMX debe estar habilitado . Agregue las variables de entorno de línea de comando vinculadas necesarias para activar JMX si no lo ha hecho.
La variable de entorno CATALINA_TMPDIR
debe configurarse para que coincida con JVisualVM como se ve en la pestaña "Propiedades del sistema" de Local> VisualVM. Puede abrirlo haciendo doble clic en la entrada etiquetada "VisualVM" en el panel de Aplicaciones a la izquierda.
Las variables de entorno se pueden establecer buscando el entorno, "editar variables de entorno para su cuenta". Nuevo ...> Introduzca un nombre y un valor.
Si desea que el directorio temporal de VisualVM se encuentre en otro lugar, deberá iniciar VisualVM desde la línea de comandos y agregar un argumento.
C:/Program Files/Java/jdk1.8.0_65/bin>jvisualvm.exe -J-Djava.io.tmpdir=C:/Users/You/Temp
He enfrentado problemas similares con JVisualVM, incluso he hecho una pregunta al respecto here
Un par de ideas / consejos:
- Entonces, para muestrear memoria no necesitas las opciones de jmx.
Me gustaría verificar si tienes jvms de 64 bits instalados junto con jdks de 32 bits en la misma máquina (incluso si no se están ejecutando y todas las variables del entorno están definidas correctamente), he leído en alguna parte que a veces vuelve loco a JVisualVM: ) (sí, sé que no nos suena razonable, desarrolladores de Java)
Si no funciona, simplemente desinstale todos los archivos jdks que tiene e instale solo el que necesite. Puede resolver el problema.
Espero que les ayude a resolver el problema, después de todo, como Peter dijo, estas cosas son nuevas y están evolucionando.
Me gustaría comprobar que la versión de VisualVM es exactamente la misma que la JVM.
VisualVM es muy específico de la versión. Supongo que todavía está en desarrollo bastante rápido.
(Re publicado como respuesta ya que puede ser la solución)
Tengo el mismo problema pero con diferente entorno. Mi servidor era una máquina Linux, el cliente una máquina con Windows 7, pero el problema es el mismo.
La solución fue lanzar jvisualvm en la misma máquina y con el mismo usuario que ejecuta la aplicación específica. Si ejecuto jvisualvm con otro usuario (por ejemplo, root), el botón de memoria se vuelve gris.
Y tengo el mismo problema.
Siempre lancé tomcat como servicio y lo conecté con visualvm a través de la conexión jmx.
Cuando se había corregido catalina.bat:
set JAVA_OPTS=%JAVA_OPTS%
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
y lo lanzó con startup.bat, visualvm determina automáticamente tomcat, y el muestreo de memoria estaba activo.
Yo tuve el mismo problema antes. Debes haber descargado la versión de la página de inicio de jvisualvm, ¿verdad? No lo hagas Si usa el nuevo jdk 1.7, VisualVM ya está empaquetado en su carpeta jdk. Utilice esta versión, no tendrá ningún problema con la muestra de memoria.
Esta publicación del blog me lleva a creer que los directorios temporales de JVisualVM y Tomcat deben ser los mismos para que el muestreo de memoria funcione. Uno de los comentarios en el post:
el directorio temporal debe configurarse al utilizado por JVisualVM, que se puede descubrir desde la pestaña de propiedades del sistema de VisualVM (java.io.tmpdir). Una vez que configuré el directorio CATALINA_TMPDIR correctamente, esto funcionó a la perfección.