Статьи

Запуск Java Mission Control и Регистратора полетов против WildFly и EAP

Java Mission Control  (JMC) позволяет вам контролировать и управлять Java-приложениями, не представляя снижения производительности, обычно связанного с этими типами инструментов. Он использует данные, которые уже собираются для нормальной динамической оптимизации JVM, что приводит к очень легкому подходу для наблюдения и анализа проблем в коде приложения. JMC состоит из трех различных типов инструментов. Браузер JMX, который позволяет вам просматривать все доступные экземпляры JVM на машине, и консоль JMX, которая позволяет вам просматривать дерево JMX на подключенной JVM. И последнее, но не менее важное: Java Flight Recorder (JFR). Это как раз та часть инструментария, которая выполняет профилирование JVM с минимальными накладными расходами.

Отказ от ответственности: Слово о лицензировании
Инструментарий является частью Oracle JDK  загружает. В частности, JMC 5.4 является частью JDK 8u20 и JDK 7u71 и распространяется в соответствии с лицензионным соглашением Oracle для двоичного кода для продуктов платформы Java SE и коммерчески доступными функциями для Java SE Advanced и Java SE Suite. IANAL, но, насколько мне известно, это позволяет использовать его для вашего личного образования и, возможно, также как часть ваших тестов для разработчиков. Не забудьте проверить, с кем вы знаете, кто мог бы ответить на этот вопрос. Этот пост в блоге рассматривает это как маленькое практическое руководство и предполагает, что вы знаете, что делаете с точки зрения лицензии.

Добавление необязательных параметров Java
Для разблокировки функций JFR необходимо указать некоторые дополнительные параметры в конфигурации WildFly 8.x / EAP 6.x. Найдите файл $ JBOSS_HOME / bin / standalone.conf | conf.bat и добавьте следующие параметры: 

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder

Теперь вы можете использовать команду jcmd, как описано в этой  записи базы знаний,  чтобы начать запись. Другой способ — начать запись прямо из JMC.

Начиная запись с JMC

Первый шаг — запустить JMC. Найдите его в папке% JAVA_HOME% / bin. После его запуска вы можете использовать браузер JVM, чтобы найти экземпляр WildFly / EAP, к которому вы хотите подключиться. Щелкните правой кнопкой мыши на нем, чтобы увидеть все доступные варианты. Вы можете запустить консоль JMX или начать запись полета. Консоль JMX немного интереснее, чем консоль JConsole, и предоставляет множество метрик и статистики. Это также позволяет вам установить кучу триггеров и браузеров, MBeans и еще много чего. Пожалуйста, посмотрите  на документацию  для всех деталей. Что действительно интересно, так это функция запуска записи полета. Если вы выберете эту опцию, появится новый мастер, который позволит вам немного изменить настройки. Помимо выбора папки, в которой хранится запись, у вас также есть выбор между различными шаблонами записи.

За одну минуту записи с использованием шаблона «Server Profiling» практически без нагрузки на сервер получается файл размером 1,5 МБ. Так что лучше следите за объемом, на котором вы храните все эти вещи.
Вы также можете выбрать гранулярность профилирования для нескольких параметров в диалоговых окнах. Но в конце вы нажимаете «Готово» и начинается сеанс записи. Вы можете отодвинуть его в фоновый режим и продолжать работать, пока данные собираются.

Анализ файлов регистратора полетов
Это довольно просто. Вы можете открыть запись в JMC и просмотреть результаты. Если вы включили запись по умолчанию с дополнительным параметром:

-XX:FlightRecorderOptions=defaultrecording=true

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