рд╕рд░реНрд╡рд╛рдВрдирд╛ рдирдорд╕реНрдХрд╛рд░ тАУ рдЖрдордЪреНрдпрд╛ рдХреНрд╡рд╛рд░реНрдХрд╕ рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рд╣реА рдкрд╛рдЪрд╡реА рдкреЛрд╕реНрдЯ рдЖрд╣реЗ! (рддрд╕реЗ, рдЖрдордЪрд╛ рд╡реЗрдмрд┐рдирд╛рд░ рдкрд╣рд╛
╨Т
рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдореЛрдЬрдорд╛рдк рд╣рд╛ рдЬрд╡рд│рдЬрд╡рд│ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрдкрдЧреНрд░реЗрдбрдЪрд╛ рдореВрд▓рднреВрдд рдЖрдзрд╛рд░ рдЖрд╣реЗ рдЖрдгрд┐ рдореЗрдорд░реА рд╡рд╛рдкрд░ рдЕрд╣рд╡рд╛рд▓ рд╣рд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ. рдЖрдЬ рдЖрдореНрд╣реА рд╕рдВрдмрдВрдзрд┐рдд рдореЛрдЬрдорд╛рдк рд╕рд╛рдзрдиреЗ рдкрд╛рд╣реВ рдЬреНрдпрд╛рдЪрд╛ рдЙрдкрдпреЛрдЧ Java рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХрд░реВрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реБрдзрд╛рд░рдгрд╛рдВрдЪреЗ рдкреНрд░рдорд╛рдг рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.
рдореЗрдорд░реА рд╡рд╛рдкрд░ рдореЛрдЬрдгреНрдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА, рд╢реАрд░реНрд╖рдХ рдЕрд╕рд▓реЗрд▓реЗ рдХреНрд╡рд╛рд░реНрдХрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╣рд╛
рдЦрд╛рд▓реА рдЖрдореНрд╣реА pmap рдЖрдгрд┐ ps рдпреБрдЯрд┐рд▓рд┐рдЯрд┐рдЬ рд╡рд╛рдкрд░реВрди рд▓рд┐рдирдХреНрд╕рд╡рд░ рд╣рд╛ рдбреЗрдЯрд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реВрди рддреАрди рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ (JBoss EAP, JAR рдкреЕрдХреЗрдЬ рдЖрдгрд┐ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓) рдордзреАрд▓ рдореЗрдорд░реА рд╡рд╛рдкрд░ рдбреЗрдЯрд╛рдЪреА рддреБрд▓рдирд╛ рдХрд╢реА рдХрд░рд╛рдпрдЪреА рддреЗ рджрд╛рдЦрд╡реВ.
JBoss EAP
рдЖрдореНрд╣реА JBoss EAP рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЙрдиреНрдЪ рдХрд░рддреЛ ("рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рддреИрдирд╛рдд рдХрд░рдгреЗ" рд╡рд┐рднрд╛рдЧ рдкрд╣рд╛
$ pgrep -lf jboss
7268 java
рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛. тАУa рдкрд░реНрдпрд╛рдп рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдВрдкреВрд░реНрдг рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛рдврдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ (рдЙрджрд╛: $ pgrep -af jboss).
рдЖрддрд╛ рдЖрдореНрд╣реА ps рдЖрдгрд┐ pmap рдХрдорд╛рдВрдбрдордзреНрдпреЗ PID 7268 рд╡рд╛рдкрд░рддреЛ.
рдпреЗрдереЗ рдЕрд╕реЗ:
$ 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
рдЖрдгрд┐ рдпрд╛рдкреНрд░рдорд╛рдгреЗ:
$ 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
рдЖрдореНрд╣реА RSS рдореВрд▓реНрдп рдкрд╛рд╣рддреЛ рдЖрдгрд┐ рдкрд╛рд╣рддреЛ рдХреА JBoss EAP рдЕрдВрджрд╛рдЬреЗ 650 MB рдореЗрдорд░реА рд╡рд╛рдкрд░рддреЗ.
JAR рдкреЕрдХреЗрдЬ
рдЖрдореНрд╣реА JAR рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдБрдЪ рдХрд░рддреЛ ("рд░рди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдкреЕрдХреЗрдЬреНрдб рдЗрди JAR" рд╡рд┐рднрд╛рдЧ рдкрд╣рд╛
$ java -jar ./target/helloworld-<version>-runner.jar
рдЖрдореНрд╣реА pgrep рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рдкреБрдиреНрд╣рд╛ PID рдкрд╛рд╣рддреЛ (рдпрд╛рд╡реЗрд│реА рдЖрдореНрд╣реА рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓рд╛ -a рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░рддреЛ):
$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar
рдЖрдореНрд╣реА рдореЗрдорд░реА рд╡рд╛рдкрд░ рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА ps рдЖрдгрд┐ pmap рдЪрд╛рд▓рд╡рддреЛ, рдкрд░рдВрддреБ рдЖрддрд╛ 6408 рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА.
рдпреЗрдереЗ рдЕрд╕реЗ:
$ ps -o pid,rss,command -p 6408
PID RSS COMMAND
6408 125732 java -jar ./target/helloworld-quarkus-runner.jar
рдЖрдгрд┐ рдпрд╛рдкреНрд░рдорд╛рдгреЗ:
$ 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
рдЖрдореНрд╣реА рдкреБрдиреНрд╣рд╛ RSS рдХрдбреЗ рдкрд╛рд╣рддреЛ рдЖрдгрд┐ рдкрд╛рд╣рддреЛ рдХреА JAR рдкреЕрдХреЗрдЬ рдЕрдВрджрд╛рдЬреЗ 130 MB рд╡рд╛рдкрд░рддреЗ.
рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓
рдЖрдореНрд╣реА рдиреЗрдЯрд┐рд╡реНрд╣ рд▓рд╛рдБрдЪ рдХрд░рддреЛ (тАЬрдиреЗрдЯрд┐рд╡реНрд╣ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рдЪрд╛рд▓рд╡рдгреЗтАЭ рд╣рд╛ рд╡рд┐рднрд╛рдЧ рдкрд╣рд╛
$ ./target/helloworld-<version>-runner
рддреНрдпрд╛рдЪрд╛ PID рдкреБрдиреНрд╣рд╛ рдкрд╛рд╣реВ:
$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner
рдЖрдгрд┐ рдирдВрддрд░ рдЖрдореНрд╣реА ps рдЖрдгрд┐ pmap рдХрдорд╛рдВрдбрдордзреНрдпреЗ рдкрд░рд┐рдгрд╛рдореА рдкреНрд░реЛрд╕реЗрд╕ рдЖрдпрдбреА (6948) рд╡рд╛рдкрд░рддреЛ.
рдпреЗрдереЗ рдЕрд╕реЗ:
$ 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
рдЖрдореНрд╣реА RSS рдкрд╛рд╣рддреЛ рдЖрдгрд┐ рдкрд╛рд╣рддреЛ рдХреА рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рд╕реБрдорд╛рд░реЗ 20 MB рдореЗрдорд░реА рдШреЗрддреЗ.
рдореЗрдорд░реА рд╡рд╛рдкрд░рд╛рдЪреА рддреБрд▓рдирд╛
рддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ рдореЗрдорд░реА рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдХреНрд░рдорд╛рдВрдХ рдорд┐рд│рд╛рд▓реЗ:
- JBoss EAP - 650 MB.
- JAR рдкреЕрдХреЗрдЬ - 130 MB.
- рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ - 20 MB.
рдЕрд░реНрдерд╛рдд, рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рдЦреВрдкрдЪ рдХрдореА рдореЗрдорд░реА рдШреЗрддреЗ.
рдЪрд▓рд╛ рдкреЛрд╕реНрдЯ 4 рдЖрдгрд┐ 5 рдЪрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджреЗрдК
рдпрд╛ рдЖрдгрд┐ рдорд╛рдЧреАрд▓ рдкреЛрд╕реНрдЯреНрд╕рдордзреНрдпреЗ, рдЖрдореНрд╣реА Quarkus (CDI рдЖрдгрд┐ Servlet 3) рдордзреНрдпреЗ рд╕рдорд░реНрдерд┐рдд рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди Java рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг, рддрд╕реЗрдЪ рдЕрд╕реЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд, рддрдпрд╛рд░ рдЖрдгрд┐ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреЗ рд╡рд┐рд╡рд┐рдз рдорд╛рд░реНрдЧ рдкрд╛рд╣рд┐рд▓реЗ. рдЕрд╢рд╛ рдЕрдкрдЧреНрд░реЗрдбрджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд╕реБрдзрд╛рд░рдгрд╛рдВрдЪреЗ рдореВрд▓реНрдпрдорд╛рдкрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореЗрдорд░реА рд╡рд╛рдкрд░ рдбреЗрдЯрд╛ рдХрд╕рд╛ рдЧреЛрд│рд╛ рдХрд░рд╛рдпрдЪрд╛ рддреЗ рдЖрдореНрд╣реА рджрд╛рдЦрд╡рд▓реЗ. рд╣реЗ рд▓реЗрдЦ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд╡рд╛рд░реНрдХрд╕ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдЖрдгрд┐ рддреЗ рдХрд╛ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рддрд╛рдд, рддреБрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдордзреАрд▓ рд╕рд╛рдзреНрдпрд╛ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдкреНрд░реЛрдЧреНрд░рд╛рдордмрджреНрджрд▓ рдмреЛрд▓рдд рдЕрд╕рд╛рд▓ рдХрд┐рдВрд╡рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рдирд╛рддреАрд▓ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ.
рдЖрдореНрд╣реА рдХреНрд╡рд╛рд░реНрдХрд╕рдмрджреНрджрд▓рдЪреНрдпрд╛ рдЕрдВрддрд┐рдо рдкреЛрд╕реНрдЯрд╕рд╣ рджреЛрди рдЖрдард╡рдбреНрдпрд╛рдВрдиреА рдкрд░рдд рдпреЗрдК - рддрд┐рдереЗ рднреЗрдЯреВ!
рдЖрдордЪреНрдпрд╛ рдЕрдВрддрд┐рдо рдкреЛрд╕реНрдЯрдордзреНрдпреЗ, рдЖрдореНрд╣реА рджреЛрди рдирд╡реАрди рдореЗрд╕реЗрдЬрд┐рдВрдЧ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╡рд╛рдкрд░реВрди рдЖрдзреБрдирд┐рдХ OpenShift-рдЖрдзрд╛рд░рд┐рдд рдореЗрд╕реЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА AMQ рдСрдирд▓рд╛рдЗрди рдЖрдгрд┐ Quarkus рдХрд╕реЗ рдПрдХрддреНрд░ рдХрд░рд╛рдпрдЪреЗ рддреЗ рджрд╛рдЦрд╡реВ. рд╡рд╛рдЪрд╛
рд╕реНрддреНрд░реЛрдд: www.habr.com