VisualVM & WebSphere Application Server

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

В этой заметке будут рассмотрены два основных средства мониторинга среды WAS в реальном времени, привычный администраторам WAS – Health Center, и, знакомый администраторам других серверов приложений, инструмент VisualVM.

Подробнее об инструменте Health Center, его возможностях и подключении к серверам приложений, читайте здесь. Рассмотрим подробнее Visual VM.

visualvm-and-was-07

VisualVM представляет собой исчерпывающий набор инструментов, собранных в единой графической оболочке, для мониторинга среды JVM, а значит функционирующих там приложений, и анализа их производительности. Круг задач, охватываемых этим инструментом, достаточно большой. Он одинаково полезен как разработчикам, так и администраторам серверов приложений. Ниже, будут рассмотрены отличительные особенности VisualVM и Health Center. Стоит отметить, что VisualVM, разработанный Oracle/Sun, не полностью взаимодействует с IBM Java, поэтому некоторые ключевые функции, например, мониторинг использования памяти классами приложения через Sampler, недоступны.

Скачать VisualVM можно на офф-сайте http://visualvm.java.net/download.html. Для установки достаточно распаковать архив в любом удобном месть. Для запуска инструмента перейдите в директорию bin и запустите visualvm.exe.

Подключение VisualVM к WebSphere Application Server

1. Подготовка сервера приложений:

  • Зайти в административную консоль WAS (WebSphere Administrative Console, IBM Integrated Solution Console);
  • Выбрать: Servers -> Server Types -> WebSphere application servers -> имя_сервера -> Java and Process Management -> Process Definition -> Java Virtual Machine;
  • В поле Generic JVM arguments вставить следующее:

  • Вместо 7771 укажите необходимый номер порта для подключения VisualVM;
  • Сохраните изменения, при необходимости синхронизируйте изменения с узлами и обязательно перезапустите сервер приложений.

2. Настройка VisualVM:

  • В VisualVM, во вкладке “Applications”, нажмите правой кнопкой мыши на категории “Remote” и выберите “Add Remote Host…”. Появится окно следующего вида:

visualvm-and-was-01

  • В поле “Host name” введите IP адрес или доменное имя целевого хоста. Если необходимо, установите флаг “Display name” и введите отображаемое имя хоста. После выполненных действий нажмите “OK”. В качестве примера мы добавили удаленный хост ED02:

visualvm-and-was-02

  •  Нажмите правой кнопкой мыши на добавленном хосте и выберите “Add JMX Connection…”:

visualvm-and-was-03

  • В появившемся окне, в поле “Connection”, к IP адресу или доменному имени добавьте порт, установленный в ключе -Dcom.sun.management.jmxremote.port JVM сервера приложений. Если необходимо установите флаги “Display name” (отображаемое имя соединения), “Use security credentials” (логин/пароль пользователя WAS), “Do not require SSL connection” (подключение не требует SSL) и заполните соответствующие поля. Нажмите “ОК”;

visualvm-and-was-04

  •  Двойным щелчком левой кнопки мыши раскройте созданное соединение с сервером приложений, рабочая область изменит свой вид:

visualvm-and-was-05

Таким образом мы подключили VisualVM к серверу приложений WAS.

Установка плагинов

Для расширения функциональных возможностей в VisualVM используются плагины. Установка плагинов происходит следующим образом:

Меню Tools -> Plugins -> Available Plugins -> Выбираем необходимый плагин и нажимаем Install:

visualvm-and-was-06

После установки/удаления плагинов может потребоваться перезапуск VisualVM.

Далее приведены плагины VisualVM, которые совместимы с WAS (актуально на момент написания статьи):

  • Memory Pools – плагин для отображения состояния пулов памяти (какой объем памяти выделен/используется пулами) JVM;
  • SysTray – позволяет свернуть/восстановить запущенный экземпляр VisualVM в/из системный трей. Не поддерживается на Mac OS X;
  • Threads Inspector – добавляет новую секцию во вкладке “Threads”, показывающую stack traces для выбранных нитей;
  • VisualVM-JConsole – плагин, позволяющий использовать специальные плагины JConsole в VisualVM. Для управления плагинами JConsole выберите: Tools->Options->JConsole Plugins”. Одним из таких плагинов является Jtop – показывающий использование процессора ;
  • VisualVM-MBeans – встраивает вкладку “MBeans”, которая позволяет работать с управляющими бинами, аналогично JConsole’s MBeans;
  • VisualVM-JvmCapabilities – простой плагин, отображающий возможности JVM во вкладке “Overview”. Показывает как могут быть расширенны “default tabs” с помощью плагинов;
  • Kill Application – позволяет “убить” локально запущенный Java-процесс;
  • Tracer – пробы для инструмента Tracer: Jvmstat Probes, Monitor Probes, JVM Probes, Collections Probes, Swing Probes, JavaFX Probes.
Отличительные особенности VisualVM и IBM Health Center применительно к WAS
VisualVM Health Center
  • Мониторинг нескольких серверов приложений из одного инструмента;
  • Мониторинг в реальном времени использования процессора классами (Sampler). Возможность сохранить собранные данные;
  • Мониторинг в реальном времени использования процессора нитями JVM (JConsole плагин JTop, доступен после установки плагина VisualVM-JConsole);
  • Возможность делать Snapshots;
  • Удобно работать с Thread Dump и Snapshots;
  • Возможность работы с MBeans через плагин VisualVM-MBeans;
  • Мониторинг пулов памяти JVM через плагин Memory Pools;
  • Возможность убить процесс сервера приложений (при условии, что VisualVM находится на одном хосте с сервером приложений);
  • Функционал Tracer – возможность по требованию, используя пробы (probes), осуществлять мониторинг метрик JVM (CPU&GC, Heap, PermGen, Classes, Threads) и сохранять результаты в файл;
  • Возможность создать Thread Dump;
  • “Родное” средство мониторинга, с периодически обновляемым агентом, предоставляющим новые возможности;
  • Мониторинг только одного сервера приложений из одного инструмента;
  • Использование памяти каждым классом;
  • Проведение анализа и получение рекомендаций по улучшению производительности;
  • Трассировка по выбранному методу (Method trace parameters), автогенерация параметров JVM;
  • Отслеживание локировок (Locking)
  • Возможность настройки автоматического сбора мусора, в случае если размер объекта превышает заданные границы;
  • Возможность создать дампы: Heap Dump, Core Dump (system dump), Java Dump (thread dump/javacore);

Безусловно, для полноценного real-time мониторинга среды WAS необходимо использовать как Health Center, так и VisualVM. Эти два инструмента отлично дополняют друг друга и помогают администратору анализировать состояние JVM.

VN:F [1.9.22_1171]
Rating: 4.7/5 (3 votes cast)
Метки: , ,
Опубликовано в WebSphere Application Server, Мониторинг

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Выбор языка: