2009-04-08 7 views
5

J'ai des difficultés à utiliser le profileur Netbeans 6.5 pour profiler l'utilisation de la mémoire d'une application Web Java, à distance.Utilisation du profileur Netbeans 6.5 pour profiler une application Web distante?

J'ai suivi les étapes du tutorial, et a été en mesure de personnaliser une instance Tomcat pour commencer par les agents de profilage. Je peux également attacher le profileur Netbeans au serveur en cours d'exécution: pendant quelques secondes, le profileur affiche des graphiques avec l'utilisation de la mémoire du serveur.

Toutefois, je ne suis pas en mesure d'exécuter mon application Web déployée. Après quelques secondes, le serveur se ferme normalement comme s'il avait simplement atteint le bas de sa méthode principale (à peine le comportement attendu d'un serveur web).

Pendant ces quelques secondes, le serveur n'est pas responsable, et je ne peux pas se connecter à une application web, ils sont tout simplement pas déployés.

Je ne veux pas importer mon application dans un nouveau projet Netbeans juste pour le profilage il. Il est possible de profiler une application distante sans avoir accès à sa source, n'est-ce pas? Après tout, pendant quelques secondes, le serveur fonctionnait et était profilé.

Je souhaite profiler une application Web dans Netbeans 6.5. Qu'ai-je oublié?

+0

avez-vous lu les journaux de serveur? – Sergey

+0

Êtes-vous capable de profiler/surveiller Tomcat lui-même sans déployer votre webapp, en exécutant simplement Tomcat "vide"? –

+0

La même chose m'arrive. Peut-être serait-il utile de mettre des numéros de version de ce que nous faisons pour que les gens puissent chercher la question? J'essayais de déployer dans Tomcat 5.5.x, avec Java5 et Java6. Ma version de Netbeans était 6.5 D'autre part, l'importation de mon projet dans Netbeans et l'exécution du profileur fonctionnaient parfaitement. @sergey Malheureusement il n'y avait pas de sortie dans les logs de Tomcat – jklp

Répondre

0

caractérisez l'ensemble ou webserver avez-vous utilisé le filtre de profilage pour le profil que votre forfait? La réduction de l'interaction entre le profileur et le serveur d'applications lui-même peut le résoudre.

1

Vous pouvez également utiliser l'outil VisualVM. Suivez les étapes mentionnées ci-dessous.

1) Exécuter jstatd (processus démon jstat) (exécuter sur votre machine distante où l'application est en cours d'exécution) jstatd -p 1098 -J-Djava.security.policy = tools.policy (spécifier le port utilisé) si tools.policy le fichier n'est pas spécifié créez-le comme suit.

tools.policy 
grant codebase "file:${java.home}/../lib/tools.jar" { 

permission java.security.AllPermission; };

2) Spécifiez également les propriétés suivantes avant de démarrer votre JVM.

#JMX property 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote=true" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.port=10992" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.authenticate=false" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.ssl=false" 

3) Démarrez la VM virtuelle sur la machine locale. a. Sous l'onglet distant, ajoutez le noeud distant. b. Attendez quelques minutes, vous verrez toutes les instances de l'application de base seront visibles sous l'onglet distant. c. Cliquez sur le noeud distant puis sélectionnez Ajouter les connexions JMX spécifient le noeud: port (port mentionné ci-dessus au point 2.) d. Attendez quelques secondes, vous verrez la connexion JMX sous le noeud distant.

4) Après quelques secondes, vous verrez un nouvel onglet qui apparaît sous le nœud distant. Double-cliquez sur le remote_node: 10992 vous verrez la table de profil sur le côté droit. Vous pouvez voir la mémoire, cpu, fil de détails etc ..

0

Vérifiez votre version jvm. La version utilisée par netbeans devrait être la même que celle de tomcat. Utiliser les ports par défaut. Si vous avez modifié des ports, vérifiez qu'ils sont supérieurs à 1024. Essayez de profiler l'exemple d'application dans Tomcat (supprimez toutes les autres applications). S'il s'exécute avec succès, cela signifie qu'il y a une contrainte de mémoire. Le profilage requiert une énorme quantité de mémoire. utilisez -xms1024m -xmx1024m pour tomcat. Si tout le reste échoue. pensez à passer à jdk6 et tomcat 6. Après de nombreux essais, j'ai découvert qu'il y a beaucoup de limitations dans jdk5 et tomcat5. passer à tomcat6 et jdk6 a résolu le problème pour moi.

profilage avec NetBeans ne fonctionne pas JRockit, etc .. ibm jdk

--kiran.kumar

Questions connexes