Domanda

Durante il monitoraggio un'applicazione remota (utilizzando jstatd) io non posso profilo né monitorare il consumo di CPU. Monitoraggio Heap (purché io non uso G1) funziona. jvisualvm fornisce il messaggio "Non supportato per questa JVM." nella finestra del grafico della CPU.

Manca qualcosa nella mia messa a punto? Google ha mostrato ben pochi risultati.

L'ambiente locale (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'ambiente remoto (Linux versione 2.6.16.27-0.9-smp (la versione di 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)

Monitoraggio locale funziona come pubblicizzato.

È stato utile?

Soluzione

profiling da remoto di codice e l'allocazione non è supportato da Visual VM. Questo fa schifo, se si desidera attivare il grafico della CPU è possibile farlo attivando JMX con

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

Potrebbe essere necessario aggiungere un po 'troppo le impostazioni di autenticazione basate sulla tua rete. Le impostazioni di JMX vi darà l'utilizzo della CPU, e filo di stato, così come fare un jstack remoto.

Un elenco di caratteristiche per la versione a distanza può essere trovato qui: visiva VM dispone

Modifica Scarica l'ultima versione di 1.2.1 VM visivo e scaricare il VisaulVM-Sampler. Questo permette di leggere da una connessione JMX per mostrare le informazioni di profilazione.

Altri suggerimenti

  

Collegamento del programma Java eclisse.

Passaggio 1: assicurare il vostro Eclipse -> Preferenze -> Java -> JRE installata è che puntano allo stesso JDK in cui si è avviato il VisualVM.

Passaggio 2: Assicurare clic destro -> Esegui configurazione ha il seguente

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

Passaggio 3:. È importante sottolineare che seguire il suggerimento seguente

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

Descrizione: Una finestra di dialogo di errore che dice che le applicazioni locali non possono essere monitorati viene mostrato subito dopo l'avvio VisualVM. A livello locale che eseguono applicazioni Java vengono visualizzati come (PID ###).

Risoluzione: Questo può accadere nei sistemi Windows se il nome utente contiene lettere maiuscole. In questo caso, il nome utente è UserName ma la directory jvmstat creato da JDK è% TMP% \ hsperfdata_username. Per risolvere il problema, chiudere tutte le applicazioni Java, eliminare la directory hsperfdata_username% \ TMP% e di crearne nuovi% TMP% directory \ hsperfdata_UserName.

Prova anche a JVMMonitor è plug-in per Eclipse decente stare monitoraggio del programma da solo.

E 'perché la versione remota è (anche se di poco) superiore alla versione locale?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top