Facebook прСдставил ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TMO, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ 20-32% памяти Π½Π° сСрвСрах

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ 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, ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ замСдлСнию доступа ΠΊ памяти ΠΈ пытаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² ΠžΠ—Π£, Π° ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, осСвшиС Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ кэшС ΠΈΠ»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ.

Facebook прСдставил ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TMO, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ 20-32% памяти Π½Π° сСрвСрах

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΡƒΡ‚ΡŒ TMO Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ процСссы Π½Π° строгой Π΄ΠΈΠ΅Ρ‚Π΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния потрСблСния памяти, ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ добиваясь пСрСноса Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… страниц памяти, вытСснСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π½Π΅ влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, страницы с ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² дисковом кэшС). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ вытСснСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΡƒ памяти, Π² TMO Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‚ΡΡ Π½Π° основании ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ прогнозирования.

Π’ качСствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² для вытСснСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ отсутствиС обращСния ΠΊ страницС памяти Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 5 ΠΌΠΈΠ½ΡƒΡ‚. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ страницы ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹ΠΌΠΈ (cold memory page) ΠΈ Π² срСднСм ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 35% памяти ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π² зависимости ΠΎΡ‚ Π²ΠΈΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ разброс ΠΎΡ‚ 19% Π΄ΠΎ 65%). ΠŸΡ€ΠΈ вытСснСнии учитываСтся Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, связанная с Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌΠΈ страницами памяти (ΠΏΠ°ΠΌΡΡ‚ΡŒ, выдСляСмая ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ) ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² (выдСляСтся ядром). Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прилоТСниях основноС ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ связано с Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ кэш. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дисбаланса ΠΏΡ€ΠΈ вытСснСнии памяти Π² кэш, Π² TMO примСняСтся Π½ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вытСсняСт Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ страницы ΠΈ страницы, связанныС с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ кэшСм, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ.

ВытСснСниС Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… страниц Π² Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ сказываСтся сильно Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ расходы Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. Π”Π°Π½Π½Ρ‹Π΅ Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‚ΡΡ Π½Π° SSD-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π² ΡΠΆΠ°Ρ‚ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. По стоимости хранСния Π±Π°ΠΉΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ NVMe SSD Π΄ΠΎ 10 Ρ€Π°Π· дСшСвлС использования сТатия Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

Facebook прСдставил ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TMO, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ 20-32% памяти Π½Π° сСрвСрах


Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru