Подтвердить что ты не робот

VisualVM не может сэмплера памяти

У меня есть экземпляр tomcat с параметром JMXRemote. Локальный VisualVM может получить пробоотборник на CPU, но не для памяти. Кнопка памяти неактивна с кратким высказыванием: "Выборка памяти: недоступна. Не удается подключиться к целевому приложению. Убедитесь, что приложение запущено на поддерживаемых JDK 6 или JDK 7"

Параметр JMXRemote:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

Версия Tomcat JDK:

JDK1.6.0.30

Версия VisualVM:

Version: 1.6.0_30 (Build 1320-110325); platform 110131-9c8b3bfb3a1e
System: Windows Server 2008 R2 (6.1) , amd64 64bit
Java: 1.6.0_30; Java HotSpot(TM) 64-Bit Server VM (20.5-b03, mixed mode)
Vendor: Sun Microsystems Inc., http://java.sun.com/
Environment: Cp1252; en_US (visualvm)
Userdir: C:\Users\Administrator\AppData\Roaming\.visualvm\7
Clusters: C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\platform
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\visualvm
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\profiler

Версия Tomcat:

Tomcat 6.0.32

Я запускаю как VisualVM, так и Tomcat на win server 2008. Что-нибудь я сделал не так?

4b9b3361

Ответ 1

Раньше у меня была такая же проблема. Вы, должно быть, загрузили версию с домашней страницы jvisualvm, не так ли? Не делай этого! Если вы используете новый jdk 1.7, VisualVM уже упакован в вашу папку jdk. Используйте эту версию, у вас не будет проблем с образцом памяти.

Ответ 2

Это сообщение в блоге заставляет меня думать, что временные каталоги JVisualVM и Tomcat должны быть одинаковыми для выборка памяти для работы. Один из комментариев к сообщению:

каталог temp должен быть установлен на тот, который используется JVisualVM, который можно открыть с вкладки свойств системы VisualVM (java.io.tmpdir). Как только я правильно установил каталог CATALINA_TMPDIR, это сработало красиво.

Ответ 3

Я бы проверял, что версия VisualVM точно такая же, как JVM.

VisualVM очень специфична для версии. Я предполагаю, что он все еще находится в довольно быстром развитии.

(Re опубликовано как ответ, поскольку это может быть решение)

Ответ 4

У меня возникли аналогичные проблемы с JVisualVM, я даже задал вопрос об этом здесь

Несколько советов/советов:

  • Итак, для выборки памяти вам не нужны параметры jmx.
  • Я бы дважды проверил, установлены ли у вас 64-битные jvms вместе с 32-разрядными jdks на одном компьютере (даже если они не запущены и все правильно настроенные vars), я где-то читал, что иногда он заставляет JVisualVM сумасшедшим:) (да, я знаю, что это не кажется разумным для нас, разработчиков java)

  • Если это не работает, просто удалите все jdks, которые у вас есть, и установите только 1, что вам нужно. Это может решить проблему.

Я надеюсь, что это поможет вам решить проблему, ведь Питер, как говорят, новые и развивающиеся.

Ответ 5

Вот мое решение для аналогичной проблемы: fooobar.com/questions/207700/...

Вы можете решить эту ошибку с помощью

$ssh -Y user @remotemachine

$wget http://java.net/projects/visualvm/downloads/download/release135/visualvm_135.zip

$unzip visualvm_135.zip

$cd visualvm_135/bin

$./visualvm

Этот экземпляр visualvm будет полнофункциональным, включая выборку памяти и процессора.

Подробнее об этом читайте здесь: http://shahriarinia.blogspot.com/2013/05/java-cpumemory-heap-usage-monitoring.html

http://mshahriarinia.com/

Ответ 6

Убедитесь, что ваш VirtualVM/JDK является 32-разрядной копией, если ваша JRE. Если вы используете Eclipse, проверьте выбранную JRE на разделе Установленная JRE.

Ответ 7

И у меня такая же проблема.

Я всегда запускал tomcat в качестве сервиса и подключал его с помощью visualvm через jmx-соединение.

Когда исправили catalina.bat:

    set JAVA_OPTS=%JAVA_OPTS% 
    -Dcom.sun.management.jmxremote=true 
    -Dcom.sun.management.jmxremote.port=9090 
    -Dcom.sun.management.jmxremote.ssl=false 
    -Dcom.sun.management.jmxremote.authenticate=false

и запустил его с помощью startup.bat, visualvm автоматически определяет tomcat, и выборка памяти активна.

Ответ 8

У меня такая же проблема, но с другой окружающей средой. Мой сервер был машиной Linux, клиент - машиной Windows 7, но проблема такая же.

Решение заключалось в том, чтобы запустить jvisualvm на том же компьютере и с тем же пользователем, который запускает целевое приложение. Если я запустил jvisualvm с другим другим пользователем (например: root), кнопка памяти стала серым.