Quarkus: Modernisasi Aplikasi Nggunakake Helloworld minangka Conto saka JBoss EAP Quickstart (lanjutan)

Hello everyone - iki kirim kaping lima ing seri Quarkus kita! (Oalah, nonton webinar kita "Iki Quarkus - kerangka kerja Jawa asli Kubernetes". Kita bakal nuduhake sampeyan carane miwiti saka ngeruk utawa nransfer solusi sing wis siap)

Quarkus: Modernisasi Aplikasi Nggunakake Helloworld minangka Conto saka JBoss EAP Quickstart (lanjutan)

Π’ kirim sadurunge kita ndeleng modernisasi aplikasi Java nggunakake teknologi sing didhukung Quarkus (CDI lan Servlet 3) nggunakake program helloworld saka repositori minangka conto. Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart. Dina iki kita bakal nerusake topik modernisasi lan ngrembug masalah konsumsi memori.

Pangukuran kinerja minangka basis dhasar saka meh kabeh upgrade, lan laporan panggunaan memori minangka bagean penting saka proses analisis kinerja. Dina iki kita bakal nliti alat pangukuran sing relevan sing bisa digunakake kanggo ngitung dandan sing ditindakake kanthi modernisasi aplikasi Java.

Kanggo informasi luwih lengkap babagan ngukur panggunaan memori, deleng tutorial Quarkus kanthi irah-irahan Ngukur Kinerja - Kepiye cara ngukur panggunaan memori?

Ing ngisor iki kita mung bakal nuduhake sampeyan carane mbandhingake data panggunaan memori kanggo telung jinis aplikasi (JBoss EAP, paket JAR, lan eksekusi) kanthi ngumpulake data ing Linux nggunakake pmap lan ps.

JBoss EAP

Kita miwiti conto aplikasi JBoss EAP (pirsani bagean "Panyebaran helloworld" ing kirim sadurunge) banjur goleki proses PID (ing conto kita yaiku 7268) nggunakake printah ing ngisor iki:

$ pgrep -lf jboss
7268 java

Wigati. Opsi -a ngidini sampeyan ngekstrak baris perintah lengkap (yaiku: $ pgrep -af jboss).

Saiki kita nggunakake PID 7268 ing printah ps lan pmap.

Kene supaya:

$ ps -o pid,rss,command -p 7268
PID RSS COMMAND 
7268 665348 java -D[Standalone] -server -verbose:gc -Xloggc:/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standalone/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferI

Lan kaya iki:

$ pmap -x 7268
7268:   java -D[Standalone] -server -verbose:gc -Xloggc:/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standalone/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standa
Address           Kbytes     RSS   Dirty Mode  Mapping
00000000ae800000 1348608  435704  435704 rw---   [ anon ]
0000000100d00000 1035264       0       0 -----   [ anon ]
000055e4d2c2f000       4       4       0 r---- java
000055e4d2c30000       4       4       0 r-x-- java
000055e4d2c31000       4       0       0 r---- java
000055e4d2c32000       4       4       4 r---- java
000055e4d2c33000       4       4       4 rw--- java
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         3263224  672772  643024

Kita ndeleng nilai RSS lan ndeleng manawa JBoss EAP nggunakake memori kira-kira 650 MB.

Paket JAR

Kita miwiti aplikasi JAR (ndeleng bagean "Run helloworld packaged in JAR" ing kirim sadurunge):

$ java -jar ./target/helloworld-<version>-runner.jar

Kita ndeleng PID maneh nggunakake perintah pgrep (wektu iki nggunakake opsi -a sing diterangake ing ndhuwur):

$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar

Kita mbukak ps lan pmap kanggo ngukur panggunaan memori, nanging saiki kanggo proses 6408.

Kene supaya:

$ ps -o pid,rss,command -p 6408
  PID   RSS COMMAND
 6408 125732 java -jar ./target/helloworld-quarkus-runner.jar

Lan kaya iki:

$ pmap -x 6408
6408:   java -jar ./target/helloworld-quarkus-runner.jar
Address           Kbytes     RSS   Dirty Mode  Mapping
00000005d3200000  337408       0       0 rw---   [ anon ]
00000005e7b80000 5046272       0       0 -----   [ anon ]
000000071bb80000  168448   57576   57576 rw---   [ anon ]
0000000726000000 2523136       0       0 -----   [ anon ]
00000007c0000000    2176    2088    2088 rw---   [ anon ]
00000007c0220000 1046400       0       0 -----   [ anon ]
00005645b85d6000       4       4       0 r---- java
00005645b85d7000       4       4       0 r-x-- java
00005645b85d8000       4       0       0 r---- java
00005645b85d9000       4       4       4 r---- java
00005645b85da000       4       4       4 rw--- java
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         12421844  133784  115692

Kita ndeleng RSS maneh lan ndeleng manawa paket JAR nganggo kira-kira 130 MB.

File sing bisa dieksekusi

Kita miwiti sing asli (ndeleng bagean "Mlakukake file eksekusi helloworld asli" ing kirim sadurunge):

$ ./target/helloworld-<version>-runner

Ayo ndeleng PID maneh:

$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner

Banjur kita nggunakake proses ID asil (6948) ing printah ps lan pmap.

Kene supaya:

$ ps -o pid,rss,command -p 6948
  PID   RSS COMMAND
 6948 19084 ./target/helloworld-quarkus-runner
И Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:
$ pmap -x 6948
6948:   ./target/helloworld-quarkus-runner
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000400000      12      12       0 r---- helloworld-quarkus-runner
0000000000403000   10736    8368       0 r-x-- helloworld-quarkus-runner
0000000000e7f000    7812    6144       0 r---- helloworld-quarkus-runner
0000000001620000    2024    1448     308 rw--- helloworld-quarkus-runner
000000000181a000       4       4       4 r---- helloworld-quarkus-runner
000000000181b000      16      16      12 rw--- helloworld-quarkus-runner
0000000001e10000    1740     156     156 rw---   [ anon ]
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         1456800   20592    2684

Kita ndeleng RSS lan ndeleng manawa file sing bisa dieksekusi butuh memori udakara 20 MB.

Mbandhingake konsumsi memori

Dadi, kita entuk nomer ing ngisor iki kanggo panggunaan memori:

  • JBoss EAP - 650 MB.
  • Paket JAR - 130 MB.
  • File eksekusi - 20 MB.

Temenan, file eksekusi mbutuhake memori sing luwih sithik.

Ayo diringkes kiriman 4 lan 5

Ing iki lan kiriman sadurunge, kita ndeleng modernisasi aplikasi Java nggunakake teknologi sing didhukung ing Quarkus (CDI lan Servlet 3), uga macem-macem cara kanggo ngembangake, mbangun lan mbukak aplikasi kasebut. We nuduhake carane ngumpulake data panggunaan memori kanggo ngira-ngira dandan ngrambah dening upgrade kuwi. Artikel-artikel iki mbantu sampeyan ngerti cara kerja Quarkus lan apa sebabe iku migunaniβ€”apa sampeyan ngomong babagan program helloworld sing prasaja ing conto kita utawa aplikasi nyata sing luwih rumit.

Kita bakal bali maneh ing rong minggu kanthi kiriman pungkasan babagan Quarkus - nganti ketemu!

Ing kirim pungkasan, kita bakal nuduhake carane nggabungake AMQ Online lan Quarkus kanggo mbangun sistem olahpesen berbasis OpenShift modern nggunakake rong teknologi olahpesen anyar. Wacanen link.

Source: www.habr.com

Add a comment