Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемДанила Влезков
1 1 © Luxoft Training 2013 Модуль 10 Мониторинг JVM Протокол JMX Инструмент JConsole – браузер MBeans 10-1 Администрирование JVM
2 2 © Luxoft Training 2013 Мониторинг JVM Начиная с JRE 1.5 JVM получила средства локального и удаленного мониторинга Инструмент JConsole позволяет осуществить мониторинг и отобразить результаты в графическом виде 10-2 Введение
3 3 © Luxoft Training 2013 Мониторинг JVM JConsole позволяет осуществлять мониторинг локальных и удаленных Java приложений Для того, чтобы установить локальный мониторинг за приложением, оно должно быть запущено с специальным свойством: java -Dcom.sun.management.jmxremote App 10-3 Создание соединения
4 4 © Luxoft Training 2013 Мониторинг JVM Для того, чтобы установить удаленный мониторинг, необходимо установить следующий набор свойств: -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote.authenticate =false -Dcom.sun.management.jmxremote.ssl=false 10-4 Создание соединения
5 5 © Luxoft Training 2013 Мониторинг JVM Инструмент JConsole запускается из %JAVA_HOME%/bin с помощью команды jconsole В появившемся диалоге можно установить локальное или удаленное соединение с наблюдаемым приложением 10-5 Создание соединения
6 6 © Luxoft Training 2013 Мониторинг JVM Можно также установить мониторинг за самой JConsole Для этого необходимо запустить jconsole и ввести localhost:0 в диалоге установки удаленного соединения 10-6 Создание соединения
7 7 © Luxoft Training 2013 Мониторинг JVM После установки соединения JConsole отображает несколько закладок, позволяющих отследить тот или иной аспект поведения наблюдаемого приложения 10-7 Обзор JСonsole
8 8 © Luxoft Training 2013 Мониторинг JVM 10-8 Закладка Overview
9 9 © Luxoft Training 2013 Мониторинг JVM Heap Memory Usage: Used: сколько памяти используется для всех поколений Comitted: сколько всего системной памяти отведено для JVM Max: максимальное количество системной памяти, которую JVM может попросить у системы 10-9 Закладка Overview
10 10 © Luxoft Training 2013 Мониторинг JVM Threads: Live: текущее количество потоков управления, кроме Daemon потоков Peak: пиковое значение за период Total: полное количество потоков управления Закладка Overview
11 11 © Luxoft Training 2013 Мониторинг JVM Classes: Loaded: Количество классов, загруженных в данный момент Unloaded: количество классов, которые были выгружены GC Total: общее количество классов, которые были загружены за период (считая выгруженные) Закладка Overview
12 12 © Luxoft Training 2013 Мониторинг JVM CPU Usage: процент процессорного времени. Можно изменить период наблюдения, щелкнув на графике правой кнопкой Закладка Overview
13 13 © Luxoft Training 2013 Мониторинг JVM На этой закладке можно увидеть дополнительную информацию о пулах памяти: Закладка Memory
14 14 © Luxoft Training 2013 Мониторинг JVM Heap Memory Usage: суммарное использование памяти областями Eden, Survivor Spaces и Tenured Generation Закладка Memory
15 15 © Luxoft Training 2013 Мониторинг JVM Non-Heap Memory Usage: суммарная память, необходимая для : скомпилированных методов (code cache), Permanent Generation данного процесса, разделяемой между процессами Permanent Generation Поле GC time отображает время, затраченное на сборку мусора Кнопка Perform GC инициирует сборку мусора Закладка Memory
16 16 © Luxoft Training 2013 Мониторинг JVM Закладка Threads показывает текущее количество потоков выполнения, их пиковое значение (peak) Позволяет отследить список потоков управления, информацию о каждом потоке Закладка Threads
17 17 © Luxoft Training 2013 Мониторинг JVM Закладка Threads
18 18 © Luxoft Training 2013 Мониторинг JVM Можно отфильтровать потоки управления в списке, введя любую часть названия в поле Filter Выбрав нить в списке, можно получить информацию о: Название (из java.lang.Thread.getName(), или сформированное JVM) Закладка Threads
19 19 © Luxoft Training 2013 Мониторинг JVM Состоянии потока Total blockedсуммарное количество блокировок Total waitedсуммарное количество ожиданий Stack traceстек Java Закладка Threads
20 20 © Luxoft Training 2013 Мониторинг JVM Состояния: RUNNABLE WAITING on. Поток вызвал.wait() TIMED_WAITING on … то же самое, но wait() был со временем ожидания BLOCKED – поток заблокировался, пытаясь захватить объект синхронизации Закладка Threads
21 21 © Luxoft Training 2013 Мониторинг JVM TERMINATED – поток завершился или был завершен NEW – поток создан, но еще не начал выполняться Закладка Threads
22 22 © Luxoft Training 2013 Мониторинг JVM Закладка Summary
23 23 © Luxoft Training 2013 Мониторинг JVM Позволяет увидеть: Количество классов, загруженных в данный момент (Loaded) Общее количество классов, которые были загружены за период, считая выгруженные (Total Loaded) Количество классов, которые были выгружены Class loader (Total classes unloaded) Закладка Classes
24 24 © Luxoft Training 2013 Мониторинг JVM Чекбокс Verbose Output позволяет осуществить вывод имен загружаемых и выгружаемых классов Закладка Classes
25 25 © Luxoft Training 2013 Мониторинг JVM Закладка VM Summary
26 26 © Luxoft Training 2013 Мониторинг JVM Pending Finalization: количество объектов в Finalization Queue Total compile time: время, затраченное JIT на компиляцию Committed memory: память, запрошенная у системы под кучу Committed virtual memory: сколько памяти отведено системой под JVM Закладка VM Summary
27 27 © Luxoft Training 2013 Мониторинг JVM Library path: путь, откуда будут загружаться native-библиотеки ( java.lang.System.load()) и JVMTI-агенты. Под UNIX это LD_LIBRARY_PATH, под Windows PATH. Class path: CLASS_PATH Закладка VM Summary
28 28 © Luxoft Training 2013 Мониторинг JVM Boot class path: путь, откуда загружаются базовые классы. Устанавливается опцией - Xbootclasspath Закладка VM Summary
29 29 © Luxoft Training 2013 Мониторинг JVM JConsole взаимодействует с отслеживаемым приложением по протоколу JMX, который, в свою очередь, работает через протокол RMI Как работает JConsole
30 30 © Luxoft Training 2013 Мониторинг JVM При присоединении к виртуальной машине в ней запускается JMX-агент, использующий свой собственный реестр RMI (RMI registry). Этот агент создает управляющие объекты Как работает JConsole
31 31 © Luxoft Training 2013 Модуль 10 Мониторинг JVM Протокол JMX Инструмент JConsole – браузер MBeans Администрирование JVM
32 32 © Luxoft Training 2013 Протокол JMX JMX – технология, разработанная Sun (JSR 255) для упрощения разработки систем удаленного мониторинга и управления Java приложений Введение в JMX
33 33 © Luxoft Training 2013 Протокол JMX Варианты использования технологии JMX: просмотр и изменение конфигурации приложения сбор и публикация статистических данных о работе приложения извещение о каких-либо неверных изменениях состояния приложения Введение в JMX
34 34 © Luxoft Training 2013 Протокол JMX Архитектура JMX
35 35 © Luxoft Training 2013 Протокол JMX Архитектура технологии JMX строится на трехуровневой модели. Выделяются три логических слоя: Instrumentation (Probe) level Agent level Слой распределенных сервисов (Remote Management Level) Архитектура JMX
36 36 © Luxoft Training 2013 Протокол JMX Этот слой трактует приложение как один или несколько управляемых компонентов MBeanов (Managed Bean) Каждый MBean предоставляет возможность управлять своим состоянием с помощью общедоступных public-методов Слой instrumentation
37 37 © Luxoft Training 2013 Протокол JMX MBeanом может быть любой Java- объект, который должен быть модифицирован так, чтобы он поддерживал интерфейсы и семантику, определенную в спецификации JMX Слой instrumentation
38 38 © Luxoft Training 2013 Протокол JMX Агент (agent) предоставляет удаленный доступ к управлению приложением через зарегистрированный набор MBeanов Слой agent
39 39 © Luxoft Training 2013 Протокол JMX Основной компонент агента называется MBean-сервером и определяется интерфейсом javax.management.MBeanServer. Для того чтобы создать сервер, необходимо вызвать статический метод createMBeanServer() класса MBeanServerFactory Слой agent
40 40 © Luxoft Training 2013 Протокол JMX Этот слой обеспечивает интерфейс, который удаленные инструменты используют для взаимодействия с агентами Позволяет соединиться с MBeanServer с помощью Connectors и Adapters Приложения этого слоя могут быть общими (JConsole) или специфическими Слой распределенных сервисов
41 41 © Luxoft Training 2013 Протокол JMX Архитектура
42 42 © Luxoft Training 2013 Модуль 10 Мониторинг JVM Протокол JMX Инструмент JConsole – браузер MBeans Администрирование JVM
43 43 © Luxoft Training 2013 Мониторинг JVM Начиная с JDK 1.5 появился пакет java.lang.management, определяющий ряд Mbeanов, позволяющих осуществить мониторинг и управление приложением JConsole – браузер MBeans
44 44 © Luxoft Training 2013 Мониторинг JVM Стардартные MBeanы (platform MBeans): ClassLoadingMXBean CompilationMXBean GarbageCollectorMXBean MemoryManagerMXBean MemoryMXBean JConsole – браузер MBeans
45 45 © Luxoft Training 2013 Мониторинг JVM MemoryPoolMXBean OperatingSystemMXBean RuntimeMXBean ThreadMXBean JConsole – браузер MBeans
46 46 © Luxoft Training 2013 Мониторинг JVM Инструмент Jconsole – просмотрщик стандартных MBeanов (platform MBeans) управления и мониторинга приложения в удобной графической форме Закладка MBeans
47 47 © Luxoft Training 2013 Мониторинг JVM Кроме того, JConsole – универсальный инструмент просмотра MBean, позволяющий соединяться с произвольным MBean сервером Закладка MBeans
48 48 © Luxoft Training 2013 Мониторинг JVM Так, последняя закладка инструмента JConsole (MBeans) предоставляет графический интерфейс к platform MBeans JVM, а также к любым другим MBeanам, зарегистрированным в агентском слое Закладка MBeans
49 49 © Luxoft Training 2013 Мониторинг JVM Закладка MBeans
50 50 © Luxoft Training 2013Упражнение Упражнение 22 Использование инструмента JConsole
51 51 © Luxoft Training 2013 Модуль 10 Мониторинг JVM Протокол JMX Инструмент JConsole – браузер MBeans Администрирование JVM
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.