2009-11-18 4 views
12

Lors de la surveillance d'une application distante (à l'aide de jstatd), je ne peux ni profiler ni surveiller la consommation du processeur. La surveillance du tas (à condition de ne pas utiliser G1) fonctionne. jvisualvm fournit le message "Non pris en charge pour cette machine virtuelle Java". dans la fenêtre graphique CPU.Le processeur et le profilage ne sont pas pris en charge pour la session jvisualvm distante

Y a-t-il quelque chose qui manque dans ma configuration? Google a montré très peu de résultats.

L'environnement 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) 

L'environnement à distance (Linux Version 2.6.16.27-0.9-smp (version gcc 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 surveillance locale fonctionne comme annoncé.

Répondre

13

Le profilage à distance du code et de l'allocation n'est pas pris en charge par Visual VM. Cette suce, si vous voulez activer le graphique du processeur, vous pouvez le faire en permettant JMX avec

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

Vous devrez peut-être ajouter des paramètres d'authentification trop en fonction de votre réseau. Les paramètres JMX vous donnent l'utilisation du processeur et l'état du thread, ainsi que le jstack distant.

Une liste de fonctionnalités pour la version à distance peuvent être trouvés ici: Visual VM features

EDIT obtenir la dernière version de vm visuelle 1.2.1 et télécharger le VisaulVM-Sampler. Cela va lire à partir d'une connexion JMX pour afficher les informations de profilage.

+0

Fonctionne! +1 pour le visualvm 1.2.1 et suggestion de plugin et accepté. – yawn

+2

Suivi: JMX in 1.6 a la sécurité activée par défaut. Pour le développement, vous pouvez désactiver la sécurité, voir http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#no_security – yawn

+0

"Le profilage à distance du code et de l'allocation n'est pas pris en charge par Visual VM "- est-ce encore vrai à partir de jvisualvm 1.3.8? – Yar

1

Est-ce parce que la version distante est (quoique légèrement) plus grande que la version locale?

4

Connexion du programme eclipse java.

Étape 1: vous assurer que votre Eclipse -> Préférences -> Java -> Installed JREs pointe vers le même jdk où vous avez commencé le visualvm.

Étape 2: Faites un clic droit Assurez -> Configuration Exécuter les éléments suivants sont

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

Étape 3: Il est important suivre la suggestion ci-dessous.

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

Description: Une boîte de dialogue d'erreur indiquant que les applications locales ne peuvent pas être contrôlées est affiché immédiatement après le démarrage VisualVM. Les applications Java exécutées localement sont affichées en tant que (pid ###).

Résolution: Cela peut se produire sur les systèmes Windows si le nom d'utilisateur contient des lettres majuscules. Dans ce cas, le nom d'utilisateur est UserName mais le répertoire jvmstat créé par JDK est% TMP% \ hsperfdata_username.Pour contourner le problème, quittez toutes les applications Java, supprimez le répertoire% TMP% \ hsperfdata_username et créez un nouveau répertoire% TMP% \ hsperfdata_UserName.

Également essayer JVMMonitor est un plug-in décent pour la surveillance autonome du programme eclipse.

Questions connexes