Skip to content

πŸ‘· МиБПИ: Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° β„–4

License

Notifications You must be signed in to change notification settings

maxbarsukov-itmo/mispi-4

Repository files navigation

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° 4

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1580

anime

web-3-1.0-SNAPSHOT.war... web-3-1.0-SNAPSHOT.war never changes.

.pdf .docx
report report

Tip

На Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² этой Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ я ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» Π½Π΅ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ Π½Π΅ Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я написал ΠΏΠ°Ρ€Ρƒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π³Π°ΠΉΠ΄ΠΈΠΊΠΎΠ² с совСтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ ΠΌΠ½Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эту Π»Π°Π±Ρƒ, ΠΈ, надСюсь, ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π²Π°ΠΌ.

  • Руководство ΠΏΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ JConsole ΠΈ VisualVM ΠΊ WildFly Π½Π° Helios'Π΅ Π² HELIOS_GUIDE.md.
  • Руководство ΠΏΠΎ сборкС ΠΈ запуску HttpUnit (Π° Ρ‚Π°ΠΊΠΆΠ΅ нСбольшиС совСты) Π² HTTP_UNIT_GUIDE.md.
  • ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΏΡ€ΠΎ JFR Π² JFR_GUIDE.md.

Π—Π°Π΄Π°Π½ΠΈΠ΅

  1. Для своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ #3 ΠΏΠΎ дисциплинС "Π’Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅" Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ:
    • MBean, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ‰Π΅Π΅ число установлСнных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΎΡ‡Π΅ΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ число Ρ‚ΠΎΡ‡Π΅ΠΊ, Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π’ случаС, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» 3 "ΠΏΡ€ΠΎΠΌΠ°Ρ…Π°" подряд, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ MBean Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± этом событии.
    • MBean, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ "ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ" ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ числу ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΉ плоскости.
  2. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ JConsole провСсти ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
    • Π‘Π½ΡΡ‚ΡŒ показания MBean-классов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π² Ρ…ΠΎΠ΄Π΅ выполнСния задания 1.
    • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ врСмя (Π² мс), ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.
  3. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ VisualVM провСсти ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
    • Π‘Π½ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ измСнСния ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ MBean-классов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π² Ρ…ΠΎΠ΄Π΅ выполнСния задания 1, с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
    • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ имя класса, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ наибольший ΠΎΠ±ΡŠΡ‘ΠΌ памяти JVM; ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс, Π² экзСмплярах ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находятся эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.
  4. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ VisualVM ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° IDE NetBeans, Eclipse ΠΈΠ»ΠΈ Idea Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. По Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ устранСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ информация:
    • ОписаниС выявлСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
    • ОписаниС ΠΏΡƒΡ‚Π΅ΠΉ устранСния выявлСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
    • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ (со ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°ΠΌΠΈ) описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ воспроизвСдСния процСсса поиска ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ прСподаватСля.

ΠžΡ‚Ρ‡Ρ‘Ρ‚ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ:

  1. ВСкст задания.
  2. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… MBean-классов ΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов.
  3. Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ JConcole со снятыми показаниями, Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.
  4. Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ VisualVM со снятыми показаниями, Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ профилирования.
  5. Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ VisualVM с коммСнтариями ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ поиска ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти.
  6. Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅.

Вопросы ΠΊ Π·Π°Ρ‰ΠΈΡ‚Π΅ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  1. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΎΡ‚ профилирования.
  2. Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ профилирования Π² составС JDK. JMX.
  3. MBeans. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия. АрхитСктура Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°.
  4. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° JConsole. ВозмоТности, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния.
  5. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Visual VM. ВозмоТности, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния.
  6. Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Java.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ?

docker compose up       # Setup PostgreSQL database
npm install             # Install webpack
npm run build           # Run webpack
./gradlew flywayMigrate # Database migrations
./gradlew flywayInfo    # Check everything is OK
./gradlew test          # Run tests
./gradlew build         # Build .war

ПослС Ρ‡Π΅Π³ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ build/libs/mispi-4-1.0-SNAPSHOT.war Π² WildFly.

Π’ случаС возникновСния трудностСй с Helios'ΠΎΠΌ ΠΈΠ»ΠΈ сборкой HttpUnit, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉ HELIOS_GUIDE ΠΈ HTTP_UNIT_GUIDE.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

Бсылка ОписаниС
docs.oracle.com/.../jconsole.html ДокумСнтация JConsole
https://visualvm.github.io/gettingstarted.html ДокумСнтация VisualVM
https://habr.com/ru/companies/timeweb/articles/719434/ Анализ Π΄Π°ΠΌΠΏΠ° ΠΊΡƒΡ‡ΠΈ Java
https://habr.com/ru/companies/zabbix/articles/342226/ ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΏΡ€ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Java
https://habr.com/ru/articles/147008/ Π“Π°ΠΉΠ΄ ΠΏΠΎ запуску JConsole ΠΈ VisualVM
https://www.baeldung.com/visualvm-jmx-remote ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΈ использованиС VisualVM
https://github.com/alex-grandson/edu/blob/main/MISPI/lab4.md ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ вопросы ΠΏΠΎ Π›Π 4
VeraKasianenko/Fundamentals_of_SE/lab4 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π›Π 4

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ JMX ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΌΡƒ для сдачи Ρ‚Π΅ΠΎΡ€ΠΈΠΈ:

ΠŸΡ€ΠΈ сдачС послСднСго задания Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ οΏ½οΏ½ΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ:

β„– Бсылка ОписаниС
1. https://docs.oracle.com/en/java/javase/21/jmx/jmx-technology-architecture.html JMX Technology Architecture
2 https://docs.oracle.com/en/java/javase/21/docs/api/java.management/javax/management/package-summary.html Docs for javax.management
3 https://en.wikipedia.org/wiki/Java_Management_Extensions#Managed_beans Wiki MBeans
4 https://docs.oracle.com/javase/tutorial/jmx/remote/custom.html Creating a Custom JMX Client
5 https://stackoverflow.com/questions/59696935/how-to-connect-to-jmx-for-jvm-on-local-machine-by-pid-java-9 How to connect to JMX for JVM on local machine by PID
6 https://docs.oracle.com/cd/E19206-01/816-4178/6madjde4b/index.html Instrumentation Using MBeans
7 https://docs.oracle.com/cd/E21764_01/web.1111/e13729/understanding.htm#JMXPG114 Understanding JMX
8 https://docs.oracle.com/en/java/java-components/jdk-mission-control/8/user-guide/real-time-jmx-monitoring.html JDK Mission Control User Guide: Real-time JMX Monitoring
9 https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/profiler.html VisualVM Profiling

ЛицСнзия

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ доступСн с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° условиях Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΈ MIT.

АвторскиС ΠΏΡ€Π°Π²Π° 2024 Max Barsukov

ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π·Π²Π΅Π·Π΄Ρƒ ⭐, Ссли Π²Ρ‹ нашли этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

Releases

No releases published

Languages