2009-04-08 5 views
5

Ich habe Probleme mit dem Netbeans 6.5 Profiler, um die Speicherauslastung einer Java Web App remote zu profilieren.Verwenden Sie den Netbeans 6.5 Profiler, um eine Remote-Webanwendung zu profilieren?

Ich habe die Schritte in der tutorial ausgeführt und war in der Lage, eine Tomcat-Instanz anzupassen, um mit den Profilerstellungsagenten zu beginnen. Ich kann den Netbeans-Profiler auch an den laufenden Server anhängen: für einige Sekunden zeigt der Profiler Graphen mit der Speichernutzung des Servers an.

Ich kann jedoch meine bereitgestellte Webanwendung nicht ausführen. Nach ein paar Sekunden wird der Server ordnungsgemäß heruntergefahren, als ob er einfach das Ende seiner Methode main erreicht hätte (kaum das erwartete Verhalten eines Webservers).

Während dieser Sekunden ist der Server nicht verantwortlich, und ich kann keine Verbindung zu einer Webanwendung herstellen, sie werden einfach nicht bereitgestellt.

Ich möchte meine App nicht in ein neues Netbeans-Projekt importieren, nur um sie zu profilieren. Es ist möglich, eine Remote-App ohne Zugriff auf ihre Quelle zu profilieren, richtig? Immerhin lief der Server für ein paar Sekunden und wurde profiliert.

Ich möchte eine Webanwendung in Netbeans 6.5 profilieren. Was habe ich vergessen?

+0

haben Sie gelesen Server-Logs? – Sergey

+0

Können Sie Tomcat selbst profilieren/überwachen, ohne Ihre Webapp zu verwenden, indem Sie einfach "leeren" Tomcat ausführen? –

+0

Das Gleiche passiert mir. Vielleicht wäre es hilfreich, wenn wir einige Versionsnummern von dem, was wir gerade laufen, verwenden, damit die Leute die Frage durchsuchen können? Ich habe versucht, in Tomcat 5.5.x zu implementieren, mit es auf Java5 und Java6 ausgeführt. Meine Version von Netbeans war 6.5 Auf der anderen Seite funktionierte das Importieren meines Projekts in Netbeans und dann das Ausführen des Profilers perfekt. @sergey Leider gab es keine Ausgabe in irgendeinem der Tomcat Protokolle – jklp

Antwort

0

Profilieren Sie den gesamten Webserver oder haben Sie den Profilierungsfilter verwendet, um nur Ihr Paket zu profilieren? Durch die Reduzierung der Interaktion zwischen dem Profiler und dem App-Server selbst kann dies behoben werden.

1

Sie können auch das VisualVM-Tool verwenden. Befolgen Sie die unten aufgeführten Schritte.

1) Run jstatd (jstat Dämon-Prozess) (auf dem Remote-Rechner ausführen, wenn die Anwendung ausgeführt wird) jstatd -p 1098 -J-Djava.security.policy = tools.policy (nicht verwendeten Port angeben), wenn tools.policy Datei ist nicht angegeben, erstellen Sie sie wie folgt.

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

Berechtigung java.security.AllPermission; };

2) Geben Sie auch die folgenden Eigenschaften an, bevor Sie Ihre JVM starten.

#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) Starten Sie die visuelle VM auf dem lokalen Computer. a. Fügen Sie unter Remote-Registerkarte Remote-Knoten hinzu. b. Warten Sie einige Minuten, bis alle wichtigen Anwendungen auf der Registerkarte "Remote" angezeigt werden. c. Klicken Sie auf den Remote-Knoten und wählen Sie dann JMX-Verbindungen hinzufügen. Geben Sie node: port an (der oben in Punkt 2 erwähnte Port). d. Warten Sie einige Sekunden, bis Sie die JMX-Verbindung unter dem Remote-Knoten sehen.

4) Nach einigen Sekunden wird unter dem Remote-Knoten ein neuer Tab angezeigt. Doppelklicken Sie auf den remote_node: 10992 Sie sehen die Profiltabelle auf der rechten Seite. Sie können Speicher, CPU, Thread usw. Details sehen.

0

Überprüfen Sie Ihre jvm-Version. Die von Netbeans verwendete Version sollte dieselbe wie in Tomcat sein. Verwenden Sie Standardports. Wenn Sie Ports geändert haben, stellen Sie sicher, dass sie über 1024 liegen. Versuchen Sie, die Beispielanwendung in tomcat zu profilieren (entfernen Sie alle anderen Anwendungen). Wenn es erfolgreich ausgeführt wird, bedeutet dies, dass eine Speicherbeschränkung vorliegt. Profiling erfordert großen Speicher. Verwenden Sie -xms1024m -xmx1024m für Tomcat. Wenn alles andere fehlschlägt. denke an den Wechsel zu jdk6 und tomcat 6. Nach vielen Versuchen habe ich festgestellt, dass es viele Einschränkungen in jdk5 und tomcat5 gibt. Der Wechsel zu tomcat6 und jdk6 löste das Problem für mich.

mit Netbeans Profil nicht jrockit nicht funktioniert, ibm jdk etc ..

--kiran.kumar

Verwandte Themen