JVM profiling remoto con JVisualVM
Sto cercando di profilare le mie applicazioni jvm su un host remoto. Sto usando Jvisualvm Ho impostato jstatd come consigliato in questo http://www.codefactorycr.com/java-visualvm-to-profile-a-remote-server.html. Sono in grado di" telnet remotehost 1099 " con successo. Tutte le porte tcp / ip sono firewall aperto sul telecomando.
Ho aggiunto il mio host remoto in jvisualvm. Inoltre, assicurati che la porta jstatd sia la 1099 con un aggiornamento di 3 secondi.
Ho iniziato la mia applicazione con
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8011
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Ma le mie applicazioni jvm non vengono visualizzate nel mio jvisualvm. C'è qualcos'altro che devo configurare o controllare ?
Jvisualvm 1.3.5 locale: Mac OSX Oracle jdk 1.6.37 a distanza: centos 6 oracle jdk 1.6.24
2 answers
1) È necessario avviare l'applicazione con JMX
abilitato
Esempio di connessione remota
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9990
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
2) Dovresti avere classi JMX
per poter fare qualcosa con loro. Suppongo che tu sia a conoscenza di questo
È necessario avviare jstatd
sulla macchina remota. A tale scopo creare un file jstatd.all.policy
nella directory home della macchina remota e aggiungere le seguenti righe:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
Quindi sulla riga di comando della macchina remota si digita
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname={Your IP address} '
Una volta avviato il servizio jstatd
sulla macchina remota, in pratica si aggiunge la connessione dell'indirizzo IP della connessione remota sull'interfaccia utente jvisualVM utilizzando aggiungi host remoto.
I documenti Oracle per JvisualVM possono essere indirizzati a https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/applications_remote.html ma è davvero confuso capire i passaggi di jstatd
.