VisualVM sur Putty SSH tunnel

Je suis en train de profil à distance application java, en fait, c'est un gameserver. Il fonctionne normalement sur ma machine locale (windows XP x64 avec le JDK1.7.0_02 x64), mais se comporte très bizarre sur le serveur de production (CentOS avec le JDK1.7.0_03 i586).

J'ai fait beaucoup de recherches et découvert que je devrais utiliser VisualVM pour cette tâche. Donc, VisualVM fonctionne très bien sur l'ordinateur local, mais il n'y a pas d'accroche sur l'ordinateur local, j'ai besoin de profilage dans un environnement de production réel de la charge utile. J'ai commencé à jstatd sur la machine distante avec des arguments

jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=false &

avec le fichier de stratégie

grant codebase "file:/usr/java/jdk1.7.0_02/lib/tools.jar" {
    permission java.security.AllPermission;
};

puis j'ai commencé mon application java comme ce

java -server -Dcom.sun.management.jmxremote\
 -Dcom.sun.management.jmxremote.port=4000\
 -Dcom.sun.management.jmxremote.ssl=false\
 -Dcom.sun.management.jmxremote.authenticate=false\
 -jar /home/pinballSocketServer/pinballSocketServer.jar

D'application et de jstatd sont lancés avec la racine priveledges.

et VisualVM n'a pas réussi à se connecter à l'hôte distant. Mais sur l'hôte distant, je vois les journaux suivants, tandis que VisualVM est en cours d'exécution et l'hôte distant a ajouté:

Feb 16, 2012 7:11:52 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: [217.16.27.195: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]
Feb 16, 2012 7:11:56 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: [217.16.27.195: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]
Feb 16, 2012 7:12:00 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: [217.16.27.195: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]
Feb 16, 2012 7:12:04 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: [217.16.27.195: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]

Après de plus amples recherches sur google, j'ai trouvé que j'ai besoin d'utiliser le tunnel ssh. J'ai configuré le mastic de la façon suivante

http://www.advancedigital.ru/show/putty_config.jpg

et VisualVM que ce

http://www.advancedigital.ru/show/visualvm_config.jpg

Adter munipulations au-dessus de VisualVM connecter à un hôte distant, mais je ne peux voir que les threads tableau récapitulatif et profiler est inactif.

J'ai vu quelques recommandations que les machines virtuelles sur les deux machines doivent être similaires et ont la même plate-forme (x86 ou x64), mais j'ai déjà essayé de profilage à partir d'une autre machine (windows 7 x86 avec le JDK1.7.0_03 x86), et avoir le même résultat.

J'ai aussi essayé cela, mais obtenir le même résultat à nouveau.
VisualVM sur ssh

Comment puis-je obtenir ce profilage de travail?

  • 2 ans plus tard, mais j'ai aussi ajouté ma façon de tunneling.