Quarkus: Nûjenkirina Serlêdanên Bi Bikaranîna Helloworld wekî Nimûneyek ji JBoss EAP Quickstart (berdewam)

Silav ji her kesî re - ev posta pêncemîn e di rêza meya Quarkus de! (Bi awayê, webinar me temaşe bikin "Ev Quarkus e - çarçoveya Java-ya xwecî ya Kubernetes". Em ê nîşanî we bidin ka meriv çawa ji sifirê dest pê dike an çareseriyên amade veguherîne)

Quarkus: Nûjenkirina Serlêdanên Bi Bikaranîna Helloworld wekî Nimûneyek ji JBoss EAP Quickstart (berdewam)

В posta berê me li nûjenkirina sepanên Java-yê bi karanîna teknolojiyên piştgirî-Quarkus (CDI û Servlet 3) bi karanîna bernameya helloworld ji depoyê wekî mînak nihêrî Platforma Serlêdana Karsaziya Red Hat JBoss (JBoss EAP) Destpêkirina Quick. Îro em ê mijara nûjenkirinê bidomînin û li ser mijara bikaranîna bîrê nîqaş bikin.

Pîvana performansê bingeha bingehîn a hema hema her nûvekirinê ye, û raporkirina karanîna bîranînê beşek girîng a pêvajoya analîzkirina performansê ye. Îro em ê li amûrên pîvandinê yên têkildar ên ku dikarin werin bikar anîn ji bo pîvandina pêşkeftinên ku bi nûjenkirina sepanên Java-yê hatine bidestxistin binihêrin.

Ji bo bêtir agahdarî li ser pîvandina karanîna bîranînê, li dersa Quarkus ya bi sernavê binêre Pîvandina Performansê - Em çawa karanîna bîranînê dipîvin?

Li jêr em ê bi tenê nîşanî we bidin ka meriv çawa daneyên karanîna bîranînê ji bo sê celeb serîlêdanan (JBoss EAP, pakêta JAR, û îcrakar) bi berhevkirina daneyên li Linux-ê bi karanîna karûbarên pmap û ps berhev dike.

JBoss EAP

Em mînakek serîlêdana JBoss EAP-ê didin destpêkirin (li beşa "Bikaranîna helloworld" binêre posta berê) û dûv re li PID-a pêvajoya wê bigerin (di mînaka me de ew 7268 e) bi karanîna fermana jêrîn:

$ pgrep -lf jboss
7268 java

Têbînî: Vebijarka –a dihêle hûn rêzika fermanê ya tevahî derxînin (ango: $ pgrep -af jboss).

Naha em di fermanên ps û pmap de PID 7268 bikar tînin.

Va ye

$ 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

Û bi vî awayî:

$ 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

Em li nirxa RSS-ê dinêrin û dibînin ku JBoss EAP bi qasî 650 MB bîranînê vedixwe.

pakêta JAR

Em serîlêdana JAR-ê didin destpêkirin (li beşa "Helloworld di JAR-ê de pakêtkirî bimeşîne" binêre posta berê):

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

Em dîsa bi karanîna fermana pgrep li PID-ê dinêrin (vê carê em vebijarka -a ku li jor hatî destnîşan kirin bikar tînin):

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

Em ps û pmap-ê dimeşînin da ku karanîna bîranînê bipîvin, lê naha ji bo pêvajoya 6408.

Va ye

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

Û bi vî awayî:

$ 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

Em dîsa li RSS-ê dinêrin û dibînin ku pakêta JAR bi qasî 130 MB dixwe.

Dosya îcrakar

Em ya xwemalî dest pê dikin (li beşa "Rakirina pelê îcrakar a xwemalî ya helloworld" binêre posta berê):

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

Ka em dîsa li PID-a wê binêrin:

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

Dûv re em di fermanên ps û pmap de nasnameya pêvajoyê ya encam (6948) bikar tînin.

Va ye

$ 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

Em li RSS-ê dinêrin û dibînin ku pelê îcrakar nêzî 20 MB bîranîn digire.

Berawirdkirina mezaxtina bîranînê

Ji ber vê yekê, me ji bo karanîna bîranînê hejmarên jêrîn wergirtin:

  • JBoss EAP - 650 MB.
  • Pakêta JAR - 130 MB.
  • Pelê îcrakar - 20 MB.

Eşkere ye, pelê darvekirî pir hindik bîranîn digire.

Ka em xalên 4 û 5 kurt bikin

Di vê û postên berê de, me li nûjenkirina sepanên Java-yê bi karanîna teknolojiyên ku di Quarkus (CDI û Servlet 3) de têne piştgirî kirin, û her weha awayên cûrbecûr ji bo pêşkeftin, çêkirin û meşandina serîlêdanên weha nihêrîn. Me nîşan da ku meriv çawa daneyên karanîna bîranînê berhev dike da ku pêşkeftinên ku bi nûvekirinek wusa hatine bidestxistin binirxînin. Van gotaran ji we re dibe alîkar ku hûn fêm bikin ka Quarkus çawa dixebite û çima ew bikêr e — gelo hûn di mînakên me de behsa bernameya helloworld ya hêsan dikin an serîlêdanên jiyanî yên pir tevlihevtir.

Em ê di du hefteyan de bi postek dawîn a di derbarê Quarkus de vegerin - hûn li wir bibînin!

Di posta xweya paşîn de, em ê destnîşan bikin ka meriv çawa AMQ Online û Quarkus bihevre dike da ku bi karanîna du teknolojiyên nû yên mesajê ve pergalek nûjen a nûjen a OpenShift-ê ava bike. Li ser bixwînin link.

Source: www.habr.com

Add a comment