Интервьюер: Какие инструменты командной строки вы использовали в JDK?

Java

Эта статья основана на виртуальной машине HotSpot, JDK версии 1.8.0_171, системе Windows

содержание

1. jps: инструмент состояния процесса виртуальной машины Во-вторых, jstat: инструмент мониторинга статистики виртуальных машин. В-третьих, jmap: инструмент сопоставления памяти Java. В-четвертых, jhat: инструмент для анализа моментальных снимков дампа кучи виртуальных машин. Пять, jstack: инструмент трассировки стека Java Шесть, jinfo: информационный инструмент конфигурации Java

Мы должны быть знакомы с двумя инструментами командной строки java и javac, но в дополнение к этим двум инструментам jdk/bin также предоставляет нам множество инструментов для использования.Сегодня мы кратко представим инструменты, связанные с мониторингом виртуальных машин и устранением неполадок.

jdk/bin中部分工具截图
На самом деле, большинство этих инструментов представляют собой пакеты jdk/lib/tool.jar, и содержимое инструмента вызывается внутренне, поэтому инструменты невелики, а некоторые инструменты в Linux-версии jdk написаны в оболочке.

1.jps (инструмент состояния процесса JVM)

Он используется для отображения всех процессов виртуальной машины HotSpot в указанной системе и может отображать основной класс выполнения виртуальной машины и уникальный идентификатор (LVMID, Local Virtual Machine Identifier) ​​локальной виртуальной машины. , поэтому его необходимо использовать.Для процесса локальной виртуальной машины LVMID совпадает с идентификатором процесса операционной системы.

Используйте формат:jps [options] [hostid]

option
Пример:

jps может запрашивать процесс виртуальной машины, который удаленно запускает службу RMI через протокол RMI.hostid — это имя хоста, зарегистрированное в реестре RMI.

2. jstat (инструмент мониторинга статистики JVM)

Инструмент для мониторинга различной информации о рабочем состоянии виртуальных машин, который может отображать текущие данные, такие как локальная или удаленная загрузка класса процесса виртуальной машины, память, GC, JIT и т. д. На серверах без графического интерфейса изображения он в основном используется во время выполнения. Найдите проблемы с производительностью.

Используйте формат:jstat [option vmid [interval [s|ms] [count]] ]

option

intervalпредставляет интервал запроса,s|msсекунды и миллисекунды (по умолчанию миллисекунды, т.е. если единица не написана в миллисекундах),countУказывает количество запросов.

Пример: указывает, что статус GC процесса виртуальной машины с LVMID 34216 проверяется каждые 5 секунд, всего 10 раз.

3.jmap (карта памяти для Java)

Он используется для создания моментального снимка дампа кучи (heapdump или файла дампа) Проще говоря, он предназначен для экспорта моментального снимка использования кучи Java для просмотра и использования для устранения неполадок.

Используйте формат:jmap [option] vmid

option
Образец

4.jhat (инструмент анализа кучи JVM)

Это используется в сочетании с jmap.Файл моментального снимка кучи, экспортированный jmap, открывается и анализируется с помощью jhat.

Используйте формат:jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>

option

Пример:

Посмотреть результаты анализа

5.jstack (трассировка стека для Java)

Используется для создания снимка потока (threaddump или javacore) в текущий момент виртуальной машины. Он в основном используется для определения причины длительной паузы в потоке, оценки взаимоблокировки, бесконечного цикла и т. д. Через jstack вы можете узнать стек вызовов каждого потока.

Используйте формат:jstack [option] vmid

option

Пример:

6.jinfo (Информация о конфигурации для Java)

Используется для просмотра и настройки различных параметров виртуальной машины.

Используйте формат:jinfo [option] pid

Некоторые параметры можно добавлять и удалять с помощью -flag[+|-] name, или некоторые параметры можно изменять с помощью -flag name=value, но многие параметры изменять нельзя

option
Пример:

Эпилог

В этой статье в основном кратко представлены несколько распространенных инструментов командной строки JDK, которые рекомендуется использовать самостоятельно.命令 -optionПроверяйте актуальное значение каждой опции и используйте ее, ведь такая опция вообще не запоминается. И некоторые из этих инструментов относительно просты, например jhat, анализ этой штуки прост, а интерфейс простой, а не мощный и профессиональный. Таким образом, эти инструменты командной строки в основном предназначены для понимания и приблизительного понимания их функций.

Как обычно, визуальные инструменты, такие как JConsole и VisualVM (универсальный инструмент для устранения неполадок Java), используются для анализа производительности мониторинга сбоев, а некоторые инструменты, такие как MAT, также используются в IDE.

Эта статья относится к четвертой главе «Углубленное понимание виртуальной машины JAVA».


Пожалуйста, поправьте меня, если есть ошибки!

Личный публичный аккаунт: стратегия прокачки да

Имеются соответствующие расширенные материалы интервью (распространение, настройка производительности, классическая книга в формате pdf), ожидающие сбора.