В предыдущей статье мы представили использование часто используемых команд в JVM. С помощью этих команд вы можете быстро проверить производительность онлайн-сервисов и устранить связанные с этим проблемы.
Да, команды действительно очень полезны, но запомнить эти команды нелегко, если они не используются очень часто. В большинстве случаев, если программирование кода разумно, конфигурация сервера разумна и служба не испытывает высокого давления параллелизма, разработчики редко обращают внимание на производительность, связанную с JVM.
Поэтому большинство разработчиков надеются иметь визуальный интерфейс для отображения показателей производительности текущего сервиса. При необходимости можно напрямую экспортировать файл дампа онлайн-сервиса, а затем импортировать его в соответствующие инструменты через интерфейс. использования скучных команд для быстрого устранения сбоев служб.
Давайте взглянем на некоторые из лучших инструментов визуального анализа JVM.
jconsole — это инструмент визуального мониторинга, входящий в состав JDK, который можно использовать для просмотра обзора работы приложения, памяти, потоков, классов, сводки виртуальных машин, MBeans и другой информации. Это инструмент мониторинга производительности графического пользовательского интерфейса, основанный на JMX (расширения управления Java), добавленный, начиная с JDK1.5.
существовать Заказлинейный входjconsole
готов начать。если Windows Пользователи также могут jdk из каталога установки bin в каталоге,оказатьсяjconsole.exe
,Дважды щелкните, чтобы начать. Интерфейс следующий.
Вы можете напрямую выбрать локальную JVM или подключиться к удаленной JVM через JMX.
Если вы отслеживаете удаленные службы, такие как служба Tomcat, вы можете добавить следующий код в сценарий запуска для поддержки удаленных подключений.
-Dcom.sun.management.jmxremote.port=6969
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
После нажатия кнопки подключения может появиться следующий интерфейс. Просто выберите «Небезопасное соединение».
После входа вы можете увидеть обзор jconsole и основные функции, такие как обзор, память, поток, класс, виртуальная машина, MBean и другие разделы. Обзорный интерфейс выглядит следующим образом.
В разделе «Память» в основном отображается использование памяти. В то же время вы можете просмотреть сравнение изменений в куче и некученой памяти. Вы также можете нажать «Выполнить сборщик мусора», чтобы запустить выполнение сборщика мусора. Интерфейс следующий.
В разделе потока в основном отображается номер активности и пиковое значение количества потоков. Нажмите на поток в левом нижнем углу, чтобы просмотреть подробную информацию о потоке, такую как состояние потока, содержимое стека и т. д. Вы также можете. нажмите «Обнаружить взаимоблокировку», чтобы проверить, существует ли ситуация взаимоблокировки между потоками. Интерфейс следующий.
В разделе классов в основном отображается количество загруженных классов. Интерфейс следующий.
В разделе сводной информации о виртуальной машине в основном отображается обзор всей информации о JVM, включая базовую информацию, информацию о потоках, куче, операционной системе, параметрах виртуальной машины и т. д. Интерфейс следующий.
В разделе MBean в основном отображаются свойства, методы и т. д. управляемых компонентов. Интерфейс следующий.
VisualVM также является инструментом визуального мониторинга, который поставляется с JDK. Он может не только отслеживать процессор, память, поток, класс и другую информацию службы, но также собирать данные об экземпляре программного обеспечения JVM и сохранять данные в локальной системе. Используйте позже или поделитесь с другими пользователями, присоединяйтесь, начиная с JDK1.6.
В то же время VisualVM очень прост в использовании, практически не требует настройки и имеет богатый функционал. Он включает в себя почти все функции собственных команд JDK. Это также один из наиболее часто используемых инструментов настройки.
существовать Заказлинейный входjvisualvm
готов начать。если Windows Пользователи также могут jdk из каталога установки bin в каталоге,оказатьсяjvisualvm.exe
,Дважды щелкните, чтобы начать. Интерфейс следующий.
Вы можете напрямую выбрать локальную JVM или подключиться к JVM удаленно. Выберите здесь локальный процесс JVM и дважды щелкните процесс, чтобы открыть его.
После входа вы можете увидеть интерфейс дисплея, связанный с VisualVM, такой как обзор, мониторинг, потоки, сэмплер и другие разделы. Обзорный интерфейс выглядит следующим образом.
Раздел мониторинга в основном отображает статистические диаграммы процессора, памяти, потоков и классов. Он также поддерживает ручную сборку мусора и создание файлов дампа кучи. Интерфейс следующий.
После нажатия кнопки «Дамп кучи» будет создан снимок файла кучи на текущий момент, и результаты анализа размера объекта текущего файла можно будет запросить в интерфейсе. Интерфейс следующий.
Он также поддерживает сравнение с другим файлом кучи для отображения информации о различиях. Интерфейс следующий.
Раздел потока в основном отображает количество действий потока. Интерфейс следующий.
После нажатия кнопки «Дамп потока» будет создан снимок потока на текущий момент, и статус потока можно будет запросить в интерфейсе. Интерфейс следующий.
Модуль пробоотборника может отбирать данные из ЦП и памяти в течение определенного периода времени для анализа. Интерфейс следующий.
Например, после нажатия кнопки «ЦП» вы можете в реальном времени запросить рейтинг процессорного времени, занимаемого потоками и методами, и нажать кнопку «Стоп», чтобы завершить выборку.
Таким же образом, нажав кнопку «Память», вы можете в реальном времени запросить рейтинг размеров объектов в куче и рейтинг размера памяти, выделяемой каждым потоком.
Еще одной особенностью VisualVM является поддержка установки плагинов. Направленность каждого плагина различна. Некоторые контролируют сборщик мусора, некоторые контролируют память, а некоторые контролируют потоки. Вы можете найти соответствующие инструменты на рынке плагинов и установить их, чтобы лучше устранять проблемы с производительностью службы.
Как установить плагин?
В строке меню VisualVM нажмите «Инструменты» -> «Плагины», и появится следующий интерфейс.
В столбце «Доступные плагины» выберите плагин, который необходимо установить, нажмите «Установить», чтобы завершить процесс, и, наконец, перезапустите VisualVM, чтобы завершить установку плагина.
Если при получении доступных плагинов есть исключение, вы можете посетить следующий адрес, чтобы найти соответствующий диапазон версий, включая ссылку для установки версии JDK.
https://visualvm.github.io/pluginscenters.html
Скопируйте соответствующую ссылку и заполните соответствующий адрес в графе настроек.
Обычно мы устанавливаем плагин Visual GC в VisualVM, который можно использовать для более интуитивного наблюдения за всем процессом сборки мусора. Интерфейс следующий.
В дополнение к инструментам визуального анализа JVM, входящим в состав JDK, на рынке также существует множество отличных инструментов мониторинга производительности, например следующие инструменты.
Здесь мы сосредоточимся на представлении инструмента Arthas, поскольку он имеет относительно полные функции и подробную документацию.
Согласно официальному представлению, Arthas (Эльзас) — это продукт для онлайн-мониторинга и диагностики, который может просматривать информацию о состоянии загрузки приложений, памяти, сборщика мусора и потоков в режиме реального времени с глобальной точки зрения и может выполнять бизнес-операции без изменения приложения. Диагностика проблем кода, включая проверку входящих и исходящих параметров и исключений вызовов методов, мониторинг времени выполнения метода, информации о загрузке классов и т. д., что значительно повышает эффективность онлайн-устранения неполадок.
Официальный адрес Артаса следующий!
https://arthas.aliyun.com/
Arthas Метод запуска очень прост, это jar Сумка,проходитьjava -jar
Заказ Готов к запуску。
Адрес загрузки пакета jar следующий.
https://arthas.aliyun.com/arthas-boot.jar
Введите следующую команду, чтобы запустить Артаса.
java -jar arthas-boot.jar
После успешного запуска вы увидите следующий интерфейс.
Это означает, что обнаружены следующие службы приложений Java. Выберите процесс, который вы хотите отслеживать, и введите соответствующий номер, чтобы включить режим мониторинга. Например, я ввожу цифру 1.
Вход в вышеуказанный интерфейс означает, что мониторинг приложения прошел успешно.
Панель мониторинга используется для отображения общего состояния работы проекта. Вы можете ввести следующую команду в командном окне, чтобы просмотреть ее.
dashboard
После возврата каретки,Всего есть три фрагмента информации,Они естьИнформация о потоке, информация о памяти, информация о времени выполнения,Интерфейс следующий.
Если мы хотим конкретно просмотреть статус работы определенного потока, мы можем использовать thread Заказ. Например, поток запроса Id для16
информация о рабочем состоянии,Заказ следующий.
thread 16
Вы также можете запросить всю информацию о потоке с помощью следующей команды.
thread -all
Иногда мы хотим проверить, правильно ли опубликован исходный код в Интернете. Вы можете сделать это через . jad Заказ на декомпиляцию класса,Используйте это для запроса информации об исходном коде.,Например, декомпилироватьApplication
добрый,Заказ следующий.
jad com.example.boot.Application
В некоторых сценариях мы хотим наблюдать возвращаемый результат определенного метода, чтобы судить, соответствует ли он ожидаемому эффекту, который вы можете использовать. watch Заказосознать,Например, наблюдайтеTestController
добрыйизqueryAll()
метод возвращает результат,Заказ следующий.
watch com.example.boot.test.web.TestController queryAll returnObj
Фронтенду необходимо инициировать запрос, и если он будет выполнен здесь, данные будут. Результаты выходного образца следующие.
Чтобы узнать больше об игровом процессе, вы можете прочитать официальную документацию.
Эта статья в основном посвящена интеграции и обобщению знаний, связанных с инструментами визуального анализа, связанными с JVM. Если в описании есть что-то не так, вы можете оставить сообщение и указать на это. ты очень.
1.http://www.ityouknow.com/jvm/2017/09/22/jvm-tool.html
2.https://arthas.aliyun.com/doc/