Простое руководство по Java VisualVM

Java задняя часть сервер VisualVM

При разработке крупномасштабных Java-проектов мы неизбежно столкнемся с такими проблемами, как утечки памяти и узкие места в производительности, такие как незадействованные соединения с файлами, сетями и базами данных, а также неоптимизированные алгоритмы. Если с ними не справиться, они могут представлять очень серьезную скрытую опасность по мере развития. Сегодня я расскажу об использовании VisualVM. (Здесь не будет подробно рассматриваться конкретный анализ данных обнаружения, будет представлено только использование инструментов и базовый анализ) Я расскажу об использовании этого инструмента со следующих аспектов:

  • Готов к работе
  • использование плагина
  • Фундаментальный анализ

1. Подготовка

1. Среда Linux, в которой находится служба

[root@localhost ~]# cd /usr/java/jdk1.8.0_162/bin/

[root@localhost bin]# vim jstatd.all.policy

Добавьте следующий код:

grant codebase "file:/usr/java/jdk1.8.0_162/lib/tools.jar" { permission java.security.AllPermission; };

Уведомление

Имя файла jstatd.all.policy может быть названо само по себе, но оно названо в честь .policy.
/usr/java/jdk1.8.0_162/bin/ и /usr/java/jdk1.8.0_162/lib/tools.jar — мои пути к Java, замените их своими

2. Запустите jstar

[root@localhost bin]#./jstatd -J-Djava.security.policy=jstatd.all.policy-J-Djava.rmi.server.hostname=192.168.134.128 -p 3333 -J-Djava.rmi.server.logCalls=true

Уведомление

hostname=192.168.134.128 Пожалуйста, замените IP-адрес вашего собственного сервиса
-p 3333 можно заменить на указанный вами порт

3. Загрузите визуальную виртуальную машину

ссылка для скачивания:visualvm.github.io/

4. Запустите VisualVM

4.1 Добавить удаленную службу

обращать внимание:

  1. Если вы не можете подключиться к серверу, проверьте, запущен ли jstard
  2. Если вы не можете подключиться к серверу, проверьте, не блокирует ли брандмауэр порт

Во-вторых, использование плагинов.

1. Установите ссылку на ресурс плагина

В настоящее время я использую VisualVM версии 1.4.1, поэтому здесь используется ссылка на ресурсы плагина:визуальный VM.GitHub.IO/UC/release1…
Добавьте его самостоятельно в соответствии с версией, которую вы используете:визуальный центр VM.GitHub.IO/плагины…

2. Пример

  • Visual GC — это плагин, который я добавил

3. Базовый анализ

То, что мы видим на картинке, Heap, Metaspace, Classes, Threads, это куча, метапространство (после jdk1.8), загрузка классов, поток