Инструмент мониторинга JVM

JVM

Благодаря мониторингу JVM мы можем понять внутренний процесс GC, узнать, когда объекты молодого поколения перемещаются в старое поколение, когда происходит GC и как долго длится GC.

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

jstat

Самый примитивный, но самый эффективный способ, не требует дополнительной настройки java-приложений, инструменты доступны по умолчанию при установке JDK, когда мы хотим понять рабочее состояние JVM, jstat может удовлетворить большую часть наших потребностей.

1 Обычно jstat устанавливается вместе с java-программой, можем посмотреть.

image-20191001215540689

2 использовать

# 例如:jstat -class -t 79065 1000 5,代表监控pid为79065的jvm进程,查看其class信息,并且没1s钟监控一次,总共监控5次。
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

# jstat可以监控的内容如下
jstat -options
-class 统计JVM中classload的信息
-compiler  统计JIT编译器的信息
-gc  统计GC的堆内存信息
-gccapacity    统计JVM的堆内存剩余空间
-gccause  统计导致最新一次GC的原因
-gcmetacapacity
-gcnew  统计新生代的信息
-gcnewcapacity  
-gcold  统计老年代的信息
-gcoldcapacity
-gcutil  显示GC的统计信息
-printcompilation  显示JVM的编译方法统计

2019-10-01 22.02.34

Объяснение столбца:

Емкость зоны выживания SOC 0 (КБ) Емкость зоны выживания S1C 1 (КБ) S0U Зона выживания 0 используемого пространства (КБ). S1U Survival Area 1 Использованное пространство (КБ). Емкость EC Eden области (KB). Емкость, используемая в зоне EU Eden (КБ). Емкость старой генерации ОС (КБ). Емкость, используемая старым возрастом OU (КБ). Текущая постоянная емкость памяти ПК (КБ). Используемая емкость постоянного диапазона PU (КБ). Сколько раз Young GC происходил в YGC Время YGCT Young GC Количество FGC Полный GC Время сбора FGCT Full GC GCT Общее время GC.

Посмотрите, найдено ли вышеизложенное, простое, прямое и эффективное.

jconsole или jvisualvm

Эти два инструмента также включены в JDK, и jvisualvm может потребоваться загрузить онлайн, но оба получают доступ к JVM через jmx, а затем выполняют статистику.При запуске JVM укажите содержимое jmx.

Способ 1: укажите пароль для повышения безопасности

java  -Dcom.sun.management.jmxremote.port=5000  -Dcom.sun.management.jmxremote.password.file=/Users/aihe/Documents/jmxremote.password   -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.access.file=/Users/aihe/Documents/jmxremote.access -jar target/jmxdemo-0.0.1-SNAPSHOT.jar

image-20191001222219155

image-20191001222423253

image-20191001222342645

arthas

Простой в использовании инструмент мониторинга jvm с открытым исходным кодом от Alibaba немного похож на набор инструментов командной строки, которые поставляются с jdk.

1 установка

# 安装方式一
curl -L https://alibaba.github.io/arthas/install.sh | sh
# 安装方式二
java -jar arthas-boot.jar --repo-mirror aliyun --use-http

2 использовать

java -jar arthas-boot.jar

image-20191001223248949

image-20191001223319224

Справочный адрес:Alibaba.GitHub.IO/art has/Inst…

Уведомление

Не забывайте выключать после использования. Если не выключать, могут возникнуть некоторые проблемы. Например, мониторинг по-прежнему является последним процессом jvm. В любом случае, сначала используйте выключение.

наконец

На этот раз я представил свои часто используемые инструменты JVM для мониторинга. Если есть лучший инструмент, пожалуйста, порекомендуйте его мне.