ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Facebook (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π° Π² Π Π€) ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΎΡΡΡΡ ΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ TMO (Transparent Memory Offloading), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Π·Π° ΡΡΡΡ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠΎΡΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΡΠ²ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ NVMe SSD-Π΄ΠΈΡΠΊΠΈ. ΠΠΎ ΠΎΡΠ΅Π½ΠΊΠ΅ Facebook, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ TMO ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΎΡ 20 Π΄ΠΎ 32% ΠΠΠ£ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . Π Π°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΄ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ TMO ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Linux.
ΠΠ° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΄ΡΠ° Linux ΡΠ°Π±ΠΎΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ PSI (Pressure Stall Information), ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²ΡΠΏΡΡΠΊΠ° 4.20. PSI ΡΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² (CPU, ΠΏΠ°ΠΌΡΡΡ, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄). ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ PSI ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠ²Π»ΡΡΡ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΅ΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°Π±ΠΎΡΡ TMO ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Senpai, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ΅Π· cgroup2 Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· PSI. Senpai Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ Π½Π°ΡΠ°Π»Π° Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· PSI, ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΠΠ£, Π° ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠ΅Π²ΡΠΈΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΊΡΡΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π²ΡΡΠ΅ΡΠ½ΡΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΡΡ TMO Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΡΡΠΎΠ³ΠΎΠΉ Π΄ΠΈΠ΅ΡΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΌ ΠΊΡΡΠ΅). Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π½Π΅Ρ Π²Π°ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ, Π² TMO Π΄Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ΡΠ½ΡΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² Π΄Π»Ρ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 5 ΠΌΠΈΠ½ΡΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠΌΠ΅Π½ΡΡΡΡΡ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΌΠΈ (cold memory page) ΠΈ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 35% ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΠΈΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠ°Π·Π±ΡΠΎΡ ΠΎΡ 19% Π΄ΠΎ 65%). ΠΡΠΈ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΠΈ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΠ°ΠΌΡΡΡ, Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ) ΠΈ ΠΏΠ°ΠΌΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² (Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΄ΡΠΎΠΌ). Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, Π½ΠΎ Π² Π΄ΡΡΠ³ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΊΡΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π΄ΠΈΡΠ±Π°Π»Π°Π½ΡΠ° ΠΏΡΠΈ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΊΡΡ, Π² TMO ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠ΅ΡΠ½ΡΠ΅Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌ ΠΊΡΡΠ΅ΠΌ, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ.
ΠΡΡΠ΅ΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ΡΠ½ΡΡΡΡΡ Π½Π° SSD-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ Π² ΡΠΆΠ°ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ NVMe SSD Π΄ΠΎ 10 ΡΠ°Π· Π΄Π΅ΡΠ΅Π²Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ°ΡΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru