Silav ji her kesî re - ev posta pêncemîn e di rêza meya Quarkus de! (Bi awayê, webinar me temaşe 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
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
$ 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
$ 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
$ ./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
Source: www.habr.com