Facebook predstavil mechanizmus TMO, ktorý vám umožňuje ušetriť 20-32% pamäte na serveroch

Inžinieri z Facebooku (zakázaný v Ruskej federácii) zverejnili správu o minuloročnej implementácii technológie TMO (Transparent Memory Offloading), ktorá umožňuje značné úspory RAM na serveroch presunutím sekundárnych dát, ktoré nie sú potrebné na prácu, na lacnejšie disky, ako je NVMe. SSD disky. Facebook odhaduje, že používanie TMO môže ušetriť 20 až 32 % RAM na každom serveri. Riešenie je navrhnuté pre použitie v infraštruktúrach, kde aplikácie bežia v izolovaných kontajneroch. Komponenty TMO na strane jadra sú už zahrnuté v jadre Linuxu.

Na strane linuxového jadra je technológia podporovaná subsystémom PSI (Pressure Stall Information), ktorý je dostupný od vydania 4.20. PSI sa už používa v rôznych obslužných programoch s nízkou pamäťou a umožňuje analyzovať informácie o dobe čakania na získanie rôznych zdrojov (CPU, pamäť, I/O). S PSI môžu procesory užívateľského priestoru presnejšie posúdiť úrovne zaťaženia systému a vzory spomalenia, čo umožňuje včasnú identifikáciu anomálií ešte predtým, než budú mať výrazný vplyv na výkon.

V užívateľskom priestore TMO zabezpečuje komponent Senpai, ktorý prostredníctvom cgroup2 dynamicky upravuje limit pamäte pre aplikačné kontajnery na základe dát prijatých z PSI. Senpai analyzuje znaky nástupu nedostatku zdrojov prostredníctvom PSI, hodnotí citlivosť aplikácií na spomalenie prístupu do pamäte a pokúša sa určiť minimálnu veľkosť pamäte vyžadovanú kontajnerom, pri ktorej dáta potrebné na prevádzku zostávajú v RAM a sprievodné údaje uložené v vyrovnávacej pamäti súborov alebo sa v súčasnosti priamo nepoužívajú, sú vytlačené do odkladacieho oddielu.

Facebook predstavil mechanizmus TMO, ktorý vám umožňuje ušetriť 20-32% pamäte na serveroch

Podstatou TMO je teda držať procesy na prísnej diéte z hľadiska spotreby pamäte a vynútiť si výmenu nepoužívaných pamäťových stránok, ktorých vyradenie výrazne neovplyvní výkon (napríklad stránky s kódom použitým len pri inicializácii a jednorazové údaje vo vyrovnávacej pamäti disku). Na rozdiel od vysťahovania informácií do swapového oddielu v reakcii na tlak v pamäti, v TMO sú dáta vymazané na základe proaktívnej predpovede.

Jedným z kritérií pre vysťahovanie je neprítomnosť prístupu na pamäťovú stránku po dobu 5 minút. Takéto stránky sa nazývajú stránky studenej pamäte a v priemere tvoria asi 35 % pamäte aplikácie (v závislosti od typu aplikácie sa pohybuje od 19 % do 65 %). Preempcia berie do úvahy aktivitu spojenú s anonymnými stránkami pamäte (pamäť pridelená aplikáciou) a pamäť používanú na ukladanie súborov do vyrovnávacej pamäte (pridelenú jadrom). V niektorých aplikáciách je hlavnou spotrebou anonymná pamäť, ale v iných je dôležitá aj vyrovnávacia pamäť súborov. Aby sa predišlo nerovnováhe pri vyradení vyrovnávacej pamäte, TMO používa nový stránkovací algoritmus, ktorý proporcionálne vyraďuje anonymné stránky a stránky spojené s vyrovnávacou pamäťou súborov.

Tlačenie málo používaných stránok do pomalšej pamäte nemá výrazný vplyv na výkon, ale môže výrazne znížiť náklady na hardvér. Údaje sa ukladajú na disky SSD alebo do komprimovanej odkladacej oblasti v RAM. Pokiaľ ide o náklady na uloženie bajtu dát, použitie NVMe SSD je až 10-krát lacnejšie ako použitie kompresie v RAM.

Facebook predstavil mechanizmus TMO, ktorý vám umožňuje ušetriť 20-32% pamäte na serveroch


Zdroj: opennet.ru

Pridať komentár