рдХреНрд╡рд╛рд░реНрдХрд╕: JBoss EAP рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ (рдЬрд╛рд░реА) рд╕реЗ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдЧреНрд░реЗрдб

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ - рдпрд╣ рд╣рдорд╛рд░реЗ рдХреНрд╡рд╛рд░реНрдХрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкрд╛рдВрдЪрд╡рд╛ рдкреЛрд╕реНрдЯ рд╣реИ! (рд╡реИрд╕реЗ, рд╣рдорд╛рд░реЗ рд╡реЗрдмрд┐рдирд╛рд░ рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ рдФрд░ рдЬрд╛рдПрдВ " рдпрд╣ рдХреНрд╡рд╛рд░реНрдХрд╕ рд╣реИ - рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореВрд▓ рдЬрд╛рд╡рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ ", рдЬреЛ 27 рдордИ рдХреЛ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдпрд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ)



рдПрдХ рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдордиреЗ рд╕рдорд░реНрдерд┐рдд рдХреНрд╡рд╛рд░реНрдХрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХреАред рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ (CDI рдФрд░ рд╕рд░реНрд╡рд▓реЗрдЯ 3) Red Hat JBoss рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (JBoss EAP) рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП ред рдЖрдЬ рд╣рдо рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ рдФрд░ рд╕реНрдореГрддрд┐ рдЦрдкрдд рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред

рдкреНрд░рджрд░реНрд╢рди рдорд╛рдк рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЙрдиреНрдирдпрди рдХрд╛ рдореВрд▓ рдЖрдзрд╛рд░ рд╣реИ, рдФрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдЖрдЬ рд╣рдо рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдорд╛рдк рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдк рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрд┐рдП рдЧрдП рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдХреНрд╡рд╛рд░реНрдХрд╕ рдореИрдиреБрдЕрд▓ рдХреЛ рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╢реАрд░реНрд╖рдХ рджреЗрдЦреЗрдВ - рд╣рдо рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдорд╛рдкрддреЗ рд╣реИрдВ?

рдФрд░ рдиреАрдЪреЗ рд╣рдо рдХреЗрд╡рд▓ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (JBoss EAP, JAR рдкреИрдХреЗрдЬ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп) рдХреЗ рд╕рд╛рде рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдбреЗрдЯрд╛ pmap рдФрд░ ps рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

Jboss eap


рд╣рдо JBoss рдИрдПрдкреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ ( рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ "рд╣реЗрд▓реНрд▓реЛ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ ) рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреА рдкреАрдЖрдИрдбреА тАЛтАЛрдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рджреЗрдЦреЗрдВ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ 7268 рд╣реИ) рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП:

$ 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 рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЙрдиреНрдЪ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ" ):

$ 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

рдлрд┐рд░ рд╕реЗ, рдЖрд░рдПрд╕рдПрд╕ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЬрд╛рд░ рдкреИрдХреЗрдЬ рд▓рдЧрднрдЧ 130 рдПрдордмреА рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╖реНрдкрд╛рджрдиреАрдп рдлрд╛рдЗрд▓


рд╣рдо рдореВрд▓ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ "рд╣рдо рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рджреЗрд╢реА рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ ):"

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

рдлрд┐рд░ рд╕реЗ, рдЙрд╕рдХреА PID рдХреЛ рджреЗрдЦреЗрдВ:

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

рдФрд░ рдлрд┐рд░ рдкреАрдПрд╕ рдФрд░ рд╢рд╛рдордк рдХрдорд╛рдВрдб рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (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

рд╣рдо рдЖрд░рдПрд╕рдПрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд▓рдЧрднрдЧ 20 рдПрдордмреА рдореЗрдореЛрд░реА рдореЗрдВ рд░рд╣рддреА рд╣реИред

рдореЗрдореЛрд░реА рдЦрдкрдд рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ


рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирдВрдмрд░ рдорд┐рд▓реЗ:

  • JBoss EAP - 650 рдПрдордмреАред
  • рдЬрд╛рд░ рдкреИрдХреЗрдЬ - 130 рдПрдордмреАред
  • рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ 20 рдПрдордмреА рд╣реИред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрд╣реБрдд рдХрдо рдореЗрдореЛрд░реА рд▓реЗрддрд╛ рд╣реИред

4 рдФрд░ 5 рдкрджреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢


рдЗрд╕ рдФрд░ рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдХреНрд╡рд╛рд░реНрдХрд╕ (рд╕реАрдбреАрдЖрдИ рдФрд░ рд╕рд░реНрд╡рд▓реЗрдЯ 3) рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреЗ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдХреА, рд╕рд╛рде рд╣реА рдРрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ, рдмрдирд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗред рд╣рдордиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдиреНрдирдпрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрд┐рдП рдЧрдП рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдкрд░ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпреЗ рд▓реЗрдЦ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд╡рд╛рд░реНрдХрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рдХреНрдпрд╛ рд╣реИрдВ - рдЪрд╛рд╣реЗ рд╣рдо рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рд╣рдо рдХреНрд╡рд╛рд░реНрдХрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдВрддрд┐рдо рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рджреЛ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗ - рдЬрд▓реНрдж рд╣реА рдорд┐рд▓рддреЗ рд╣реИрдВ!

All Articles