Hello everyone - iki kirim kaping lima ing seri Quarkus kita! (Oalah, nonton webinar kita
Π
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
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
$ 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
$ 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
$ ./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
Source: www.habr.com