



у вас есть VisualGC, он не очень продвинутый, но вы можете видеть использование памяти вашим приложением (мусор, старый, постоянный и т. д.)
http://java.sun.com/performance/jvmstat/visualgc.html
возобновить : вы запускаете демон-мониторинг на удаленной машине (http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstatd.html, см. парапраф безопасности)
JAVA_HOME/bin/jstatd -J-Djava.security.policy=jstatd.all.policy
здесь находится файл jstatd.all.policy, содержащий:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
на удаленном компьютере у вас есть pid вашего приложения для отладки с помощью инструмента jps:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html#jps
наконец, на вашем локальном компьютере вы запускаете visualgc:
visualgc the_pid@remote_machine_address
Вы можете изменить параметры виртуальной машины своего Java-приложения, чтобы разрешить удаленное профилирование.
что-то вроде -agentlib:jprofilerti=port=25000
Примеры:
Обычно я использую YourKit, отличное приложение (требуется лицензия).
В сценарии запуска / завершения работы веб-серверов (catalina.sh для tomcat) введите:
JAVA_OPTS = "-Djava.awt.headless=true -agentlib:yjpagent -Xrunyjpagent:sessionname=Tomcat"
Вам понадобится YourKit, уже загруженный и добавленный в путь к вашей библиотеке (я также делаю это в catalina.sh):
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/yourkit/yjp-6.0.16/bin/linux-x86-32
Затем вы можете запустить клиент YourKit на локальном рабочем столе и подключиться удаленно.
Профилируйте свое приложение с помощью Jprofiler. Ниже приведены шаги по настройке Tomcat с помощью Jprofiler.
На компьютере с Linux откройте файл .bash_profile из каталога /root.
Введите местоположение jprofiller (используя экспорт команды ниже) в
.bash_profile file
export LD_LIBRARY_PATH=/dsvol/jprofiler6/bin/linux-x86
Перейдите в каталог установки Tomcat. Откройте файл catalena.sh из папки bin.
Введите приведенные ниже данные в файл catelana.sh (только информацию о красном цвете и черном цвете, которые вы можете найти по умолчанию в файле catalena.sh).
export JPROFILER_HOME
JAVA_OPTS = "-Xms768m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -Dfile.encoding=UTF8 -agentpath:/opt/Performance/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849 $CATALINA_OPTS"
Запустите сервер из папки bin, выполнив команду starup.sh
Я слышал хорошие отзывы о VisualVM, и вот статья о том, как это сделать удаленно:
Java VisualVM для профилирования удаленного сервера
РЕДАКТИРОВАТЬ: Я написал сообщение в блоге о том, как настроить удаленное профилирование через туннель SSH здесь:
http://kamilmroczek.com/2012/11/16/168787859/
VisualVM не поддерживает профилирование памяти на удаленных машинах, а только профилирование ЦП.
Это только ссылка. Пожалуйста, добавьте дополнительную информацию к своему ответу