Quarkus: ืžืึธื“ืขืจื ื™ื–ื™ื ื’ ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธื ืก ื ื™ืฆืŸ ื”ืขืœืœืึธื•ื•ืึธืจืœื“ ื•ื•ื™ ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ JBoss EAP ืงื•ื•ื™ืงืงืกื˜ืึทืจื˜ (ืคืึธืจื–ืขืฆืŸ)

ื”ืขืœื ืึทืœืขืžืขืŸ - ื“ืึธืก ืื™ื– ื“ื™ ืคื™ื ืคื˜ ืคึผืึธืกื˜ืŸ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืงื•ื•ืึทืจืงื•ืก ืกืขืจื™ืข! (ืื’ื‘, ื”ื™ื˜ืŸ ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ื™ื ืึทืจ "ื“ืืก ืื™ื– Quarkus - Kubernetes ื’ืขื‘ื•ื™ืจืŸ ื“ื–ืฉืึทื•ื•ืึท ืคืจื™ื™ืžื•ื•ืขืจืง". ืžื™ืจ ื•ื•ืขื˜ ื•ื•ื™ื™ึทื–ืŸ ืื™ืจ ื•ื•ื™ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืคึฟื•ืŸ ืงืจืึทืฆืŸ ืึธื“ืขืจ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืคืึทืจื˜ื™ืง ืกืึทืœื•ืฉืึทื ื–)

Quarkus: ืžืึธื“ืขืจื ื™ื–ื™ื ื’ ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธื ืก ื ื™ืฆืŸ ื”ืขืœืœืึธื•ื•ืึธืจืœื“ ื•ื•ื™ ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ JBoss EAP ืงื•ื•ื™ืงืงืกื˜ืึทืจื˜ (ืคืึธืจื–ืขืฆืŸ)

ะ’ ืคืจื™ื™ึทืขืจื“ื™ืง ืคึผืึธืกื˜ืŸ ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืงื•ืงื˜ ืื•ื™ืฃ ืžืึทื“ืขืจื ื™ื™ื–ื™ื ื’ ื–'ืื‘ื ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ื™ืฆืŸ Quarkus-ื’ืขืฉื˜ื™ืฆื˜ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– (CDI ืื•ืŸ Servlet 3) ื ื™ืฆืŸ ื“ื™ ื”ืขืœืœืึธื•ื•ืึธืจืœื“ ืคึผืจืึธื’ืจืึทื ืคึฟื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื•ื•ื™ ืึท ื‘ื™ื™ืฉืคึผื™ืœ Red Hat JBoss Enterprise Application Platform (JBoss EAP) ืงื•ื•ื™ืงืงืกื˜ืึทืจื˜. ื”ื™ื™ึทื ื˜ ืžื™ืจ ื•ื•ืขืœืŸ ืคืึธืจื–ืขืฆืŸ ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹ืžืึทื“ืขืจื ืึทื–ื™ื™ืฉืึทืŸ ืื•ืŸ ื“ื™ืกืงื•ื˜ื™ืจืŸ ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืคื•ืŸ ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ.

ืคืึธืจืฉื˜ืขืœื•ื ื’ ืžืขื–ืฉืขืจืžืึทื ื˜ ืื™ื– ื“ื™ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœ ื™ืงืขืจ ืคื•ืŸ ื›ึผืžืขื˜ ืงื™ื™ืŸ ืึทืคึผื’ืจื™ื™ื“, ืื•ืŸ ื–ื™ืงืึธืจืŸ ื‘ืึทื ื™ืฅ ืจื™ืคึผืึธืจื˜ื™ื ื’ ืื™ื– ืึท ื•ื•ื™ื›ื˜ื™ืง ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืึทื ืึทืœื™ืกื™ืก ืคึผืจืึธืฆืขืก. ื”ื™ื™ึทื ื˜ ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ื“ื™ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืžืขื–ืฉืขืจืžืึทื ื˜ ืžื›ืฉื™ืจื™ื ื•ื•ืึธืก ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืฆื• ืงื•ื•ืึทื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืึทื˜ืฉื™ื•ื•ื“ ื“ื•ืจืš ืžืึทื“ืขืจื ื™ื™ื–ื™ื ื’ Java ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–.

ืคึฟืึทืจ ืžืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืžืขืกื˜ืŸ ื–ื™ืงืึธืจืŸ ื‘ืึทื ื™ืฅ, ื–ืขืŸ ื“ื™ Quarkus ื˜ื•ื˜ืึธืจื™ืึทืœ ื˜ื™ื™ื˜ืึทืœื“ ืžืขืึทืกื•ืจื™ื ื’ ืคืึธืจืฉื˜ืขืœื•ื ื’ - ื•ื•ื™ ืึทื–ื•ื™ ืžืขืกื˜ืŸ ืžื™ืจ ื–ื™ืงืึธืจืŸ ื‘ืึทื ื™ืฅ?

ื•ื ื˜ืขืจ ืžื™ืจ ื•ื•ืขื˜ ืคืฉื•ื˜ ื•ื•ื™ื™ึทื–ืŸ ืื™ืจ ื•ื•ื™ ืฆื• ืคืึทืจื’ืœื™ื™ึทื›ืŸ ื–ื™ืงืึธืจืŸ ื‘ืึทื ื™ืฅ ื“ืึทื˜ืŸ ืคึฟืึทืจ ื“ืจื™ื™ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– (JBoss EAP, JAR ืคึผืขืงืœ, ืื•ืŸ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข) ื“ื•ืจืš ืงืึทืœืขืงื˜ื™ื ื’ ื“ื™ ื“ืึทื˜ืŸ ืื•ื™ืฃ ืœื™ื ื•ืงืก ื ื™ืฆืŸ ื“ื™ pmap ืื•ืŸ ps ื™ื•ื˜ื™ืœืึทื˜ื™ื–.

JBoss EAP

ืžื™ืจ ืงืึทื˜ืขืจ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ JBoss EAP ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ (ื–ืขืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "ื“ื™ืคึผืœื•ื™ื™ื ื’ ื”ืขืœืœืึธื•ื•ืึธืจืœื“" ืื™ืŸ ืคืจื™ื™ึทืขืจื“ื™ืง ืคึผืึธืกื˜ืŸ) ืื•ืŸ ื“ืึทืŸ ืงื•ืง ืึทืจื•ื™ืฃ ื–ื™ื™ืŸ ืคึผืจืึธืฆืขืก PID (ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ืขืก ืื™ื– 7268) ื ื™ืฆืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ pgrep -lf jboss
7268 java

ื‘ืึทืžืขืจืงื•ื ื’. ื“ื™ -a ืึธืคึผืฆื™ืข ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืขืงืกื˜ืจืึทืงื˜ ื“ื™ ื’ืึทื ืฅ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” (ื“"ื”: $ pgrep -af jboss).

ืื™ืฆื˜ ืžื™ืจ ื ื•ืฆืŸ PID 7268 ืื™ืŸ ื“ื™ ps ืื•ืŸ pmap ืงืึทืžืึทื ื“ื–.

ื“ืึธ ืึทื–ื•ื™:

$ 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 ืžืขื’ืื‘ื™ื™ื˜ืŸ ืคื•ืŸ ื–ื›ึผืจื•ืŸ.

JAR ืคึผืขืงืœ

ืžื™ืจ ืงืึทื˜ืขืจ ื“ื™ JAR ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ (ื–ืขืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "ืœื•ื™ืคืŸ ื”ืขืœืœืึธื•ื•ืึธืจืœื“ ืคึผืึทืงื™ื“ื–ืฉื“ ืื™ืŸ JAR" ืื™ืŸ ืคืจื™ื™ึทืขืจื“ื™ืง ืคึผืึธืกื˜ืŸ):

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

ืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ื“ื™ PID ื•ื•ื™ื“ืขืจ ืžื™ื˜ ื“ื™ pgrep ื‘ืึทืคึฟืขืœ (ื“ืึธืก ืžืึธืœ ืžื™ืจ ื ื•ืฆืŸ ื“ื™ -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 ืžืขื’ืื‘ื™ื™ื˜ืŸ.

ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืข

ืžื™ืจ ืงืึทื˜ืขืจ ื“ื™ ื’ืขื‘ื•ื™ืจืŸ (ื–ืขืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "ืœื•ื™ืคืŸ ื“ื™ ื’ืขื‘ื•ื™ืจืขื ืขืจ ื”ืขืœืœืึธื•ื•ืึธืจืœื“ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืข" ืื™ืŸ ืคืจื™ื™ึทืขืจื“ื™ืง ืคึผืึธืกื˜ืŸ):

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

ืœืึธืžื™ืจ ื–ืขืŸ ื–ื™ื™ืŸ PID ื•ื•ื™ื“ืขืจ:

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

ืื•ืŸ ื“ืขืžืึธืœื˜ ืžื™ืจ ื ื•ืฆืŸ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืฉื™ื™ึทืŸ (6948) ืื™ืŸ ื“ื™ ps ืื•ืŸ pmap ืงืึทืžืึทื ื“ื–.

ื“ืึธ ืึทื–ื•ื™:

$ 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 ืžืขื’ืื‘ื™ื™ื˜ืŸ ืคื•ืŸ ื–ื›ึผืจื•ืŸ.

ืงืึทืžืคึผืขืจื™ื ื’ ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ

ืึทื–ื•ื™, ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื ื•ืžืขืจืŸ ืคึฟืึทืจ ื–ื›ึผืจื•ืŸ ื‘ืึทื ื™ืฅ:

  • JBoss EAP - 650 ืžืขื’ืื‘ื™ื™ื˜ืŸ.
  • JAR ืคึผืขืงืœ - 130 ืžืขื’ืื‘ื™ื™ื˜ืŸ.
  • ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืข - 20 ืžืขื’ืื‘ื™ื™ื˜ืŸ.

ื“ืึธืš, ื“ื™ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืข ื ืขืžื˜ ืคื™ืœ ื•ื•ื™ื™ื ื™ืงืขืจ ื–ื›ึผืจื•ืŸ.

ืœืึธืžื™ืจ ืกืึทืžืขืจื™ื™ื– ืึทืจื˜ื™ืงืœืขืŸ 4 ืื•ืŸ 5

ืื™ืŸ ื“ืขื ืื•ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืึทืจื˜ื™ืงืœืขืŸ, ืžื™ืจ ื’ืขืงื•ืงื˜ ืื•ื™ืฃ ืžืึธื“ืขืจื ื™ื–ื™ื ื’ ื–'ืื‘ื ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ื™ืฆืŸ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ Quarkus (CDI ืื•ืŸ Servlet 3), ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืคืึทืจืฉื™ื“ืŸ ื•ื•ืขื’ืŸ ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ, ื‘ื•ื™ืขืŸ ืื•ืŸ ืœื•ื™ืคืŸ ืึทื–ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืžื™ืจ ื’ืขื•ื•ื™ื–ืŸ ื•ื•ื™ ืฆื• ื–ืึทืžืœืขืŸ ื–ื™ืงืึธืจืŸ ื‘ืึทื ื™ืฅ ื“ืึทื˜ืŸ ืฆื• ืึธืคึผืฉืึทืฆืŸ ื“ื™ ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืึทื˜ืฉื™ื•ื•ื“ ื“ื•ืจืš ืึทื–ืึท ืึท ืึทืคึผื’ืจื™ื™ื“. ื“ื™ ืึทืจื˜ื™ืงืœืขืŸ ื”ืขืœืคึฟืŸ ืื™ืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ Quarkus ืึทืจื‘ืขื˜ ืื•ืŸ ื•ื•ืึธืก ืขืก ืื™ื– ื ื•ืฆื™ืง - ืฆื™ ืื™ืจ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืคึผืฉื•ื˜ ื”ืขืœืœืึธื•ื•ืึธืจืœื“ ืคึผืจืึธื’ืจืึทื ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื™ืฉืคื™ืœืŸ ืึธื“ืขืจ ืคื™ืœ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืคืึทืงื˜ื™ืฉ-ืœืขื‘ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–.

ืžื™ืจ ื•ื•ืขืœืŸ ื–ื™ื™ืŸ ืฆื•ืจื™ืง ืื™ืŸ ืฆื•ื•ื™ื™ ื•ื•ืึธื›ืŸ ืžื™ื˜ ืึท ืœืขืฆื˜ ืคึผืึธืกื˜ืŸ ื•ื•ืขื’ืŸ ืงื•ื•ืึทืจืงื•ืก - ื–ืขืŸ ืื™ืจ ื“ืึธืจื˜!

ืื™ืŸ ืื•ื ื“ื–ืขืจ ืœืขืฆื˜ ืคึผืึธืกื˜ืŸ, ืžื™ืจ ื•ื•ืขื˜ ื•ื•ื™ื™ึทื–ืŸ ื•ื•ื™ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ AMQ ืึธื ืœื™ื™ืŸ ืื•ืŸ Quarkus ืฆื• ื‘ื•ื™ืขืŸ ืึท ืžืึธื“ืขืจืŸ OpenShift-ื‘ืื–ื™ืจื˜ ืžืขืกื™ื“ื–ืฉื™ื ื’ ืกื™ืกื˜ืขื ื ื™ืฆืŸ ืฆื•ื•ื™ื™ ื ื™ื™ึทืข ืžืขืกื™ื“ื–ืฉื™ื ื’ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื–. ืœื™ื™ืขื ืขืŸ ืื•ื™ืฃ ืจื•ื ื’.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’