Подключение к трансляции
Заходите на discord канал https://discord.gg/v865eA (регистрация не требуется, вы можете пропустить форму "claim account" клинув за её пределами).
Ссылка на видео трансляцию будет опубликована в канале за несколько минут до начала.
Подготовка к участию в семинаре
Для выполнения практической части семинара вам понадобится личный компьютер/ноутбук. Материал протестирован на Windows 7/10, Linux и MacOS.
Дальнейшие инструкции предполагают, что директория LABDIR используется для установки учебных материалов.
Погдотовка ПО
Java
Вам потребуется JDK 8 (update 144 или выше) от Oracle. Диструбутив Java можно найти на официальном сайте.
sjk работает c Java 11, но используемые примеры требуют Java 8. OpenJDK 8 не включает Java Flight Recorder, который будет использован в одном из примеров.
git
Для работы с материалом семинара вам понадобится git клиент с поддержкой коммандной строки.
Maven
Для запуска демонстрационных проектов необходим Maven версии 3.3.9 или выше.
После инсталяции убедитесь, что команда mvn --version корректно работает из консоли и возвращает правильные номера версий.
SJK
Скачайте sjk-0.12.jar по ссылке и coхраните в директории LABDIR.
Выполните следующюю комманду
java -jar LABDIR/sjk-0.12.jar --commands
В результате должен быть распечатан список подкомманд sjk.
ssa - [Stack Sample Analyzer] Analyzing stack trace dumps
hh - [Heap Histo] Prints class histogram, similar to jmap -histo
stcpy - [Stack Copy] Stack dump copy/filtering utility
vminfo - [VMINFO] Dumps various from local VM
mx - [MBean] MBean query and invokation
jps - [JPS] Enhanced version of JDK's jps tool
mxping - [MXPING] Verify JMX connection to target JVM
ttop - [Thread Top] Displays threads from JVM process
dexp - [Dump Export] Extract metrics form compressed dump into tabular format
mprx - JMX proxy - expose target process' MBeans for remote access
stcap - [Stack Capture] Dumps stack traces to file for further processing
gc - [Print GC] Print GC log like information for remote process
flame - Generates flame graph from stack traces
JMeter
Apache JMeter используется в качестве генератора нагрузки в некоторых примерах.
Вы может загрузить дистрибутив с официального сайта.
Загрузка учебных материалов
Код демонстрационных примеров
В папке LABDIR/ выполните следующие три команды:
git clone -b hz_demo_step_1 https://github.com/aragozin/proflab.git hz_bench
git clone -b bench/cryptoprof/master https://github.com/aragozin/proflab.git cryptoprof
git clone -b demo https://github.com/aragozin/spring-petclinic.git petclinic
Сборка примеров
-
В папке LABDIR/hz_bench выполните команду
mvn -DskipTests clean package
Команда должна завершиться успешно. -
В папке LABDIR/cryptoprof выполните команду
mvn -DskipTests clean package
Команда должна завершиться успешно. -
В папке LABDIR/petclinic выполните команду
mvn -P bench test && mvn -P stop test
Команда должна завершится успешно.
В случае ошибки запуска проверьте лог файлы содержащие больше информации о проблемеLABDIR/petclinic/var/hsqldb/logs/console.err
LABDIR/petclinic/var/tomcat/console.err