Obtenez tas de vidage à partir d'une distance de l'application en Java à l'aide de JVisualVM
- Je exécuter JVisualVM (Windows XP, Sun Java 1.6.0.13, 32 bits client VM) pour surveiller un lointain application (Linux, Sun Java 1.6.0.07, 64 bit server VM). Avant de commencer la distance réelle de l'application, je me lance sur la machine distante jstatd
l'aide d'un tout de la politique d'accès:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
Puis j'ai commencer à l'application à l'aide de la ligne de commande
java -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=3333
compileTest.Main
À partir de la machine client, je peux voir le lointain application et de le surveiller. Je peux aussi faire un thread dump etc. Malheureusement, le tas de vidage bouton est grisé.
Comment puis-je obtenir un tas de vidage d'un surveillés à distance de l'application à l'aide de JVisualVM?
J'ai essayé d'utiliser jConsole. Avec jConsole il est possible de faire un lointain tas de vidage à l'aide de la com.soleil.de la gestion.HotSpotDiagnostic dumpHeap opération. Je veux le dump pour être transféré sur le côté client et analysées en utilisant les outils fournis par JVisualVM. Comment puis-je faire cela?
bon point! J'ai navigué ma façon à cette question/sujet, car j'ai la même question que stackoverflow.com/questions/8799929/..., et je pense que votre déclaration/hypothèse est correcte. Quand je lance tomcat/tomee via mon NetBeans IDE sur mon PC développeur/serveur, puis le Sampler>bouton de Mémoire est activé, mais le Sampler>bouton de Mémoire est désactivée sur le serveur de production, depuis tomcat/tomee est en cours d'exécution en tant que service Windows, et je ne suis pas connecté en service de la production du système ou local. 🙁
OriginalL'auteur Philipp | 2009-04-07
Vous devez vous connecter pour publier un commentaire.
Il y a une façon de le faire!
Sur la télécommande utilisation de la machine suivant
jmap -dump:fichier= :1099
jhat
Permettra de démarrer une application web sur le port 7000
Tous les outils ci-dessus font partie de JDK 1.6
Tout le meilleur!
OriginalL'auteur
Malheureusement, il n'y a pas un moyen automatisé pour ce faire. Vous aurez à exécuter jmap manuellement sur le serveur Linux pour vider la poubelle de votre JVM et ensuite copier la résultante des tas de dump sur votre ordinateur local, de course JVisualVM et utiliser le Fichier|Charger... pour charger le heap dump dans le JVisualVM pour l'analyse.
OriginalL'auteur
Depuis la 1.3, VisualVM à distance de soutien tas dumps:
Voir: VisualVM 1.3 Publié
OriginalL'auteur
Vous ne pouvez pas analyser le segment de mémoire à distance. Vous pouvez exécuter visualvm sur votre serveur et de l'exportation de la session x sur votre ordinateur local. Vous devriez avoir x11 est installé sur votre serveur de laquelle de nombreux serveurs ne sont pas.
OriginalL'auteur