Facebook pristatė TMO mechanizmą, leidžiantį sutaupyti 20-32% serverių atminties

Inžinieriai iš Facebook (uždraustas Rusijos Federacijoje) paskelbė ataskaitą apie praėjusiais metais įdiegtą TMO (Transparent Memory Offloading) technologiją, kuri leidžia žymiai sutaupyti RAM serveriuose, perkeliant antrinius darbui nereikalingus duomenis į pigesnius diskus, tokius kaip NVMe. SSD diskai. „Facebook“ apskaičiavo, kad naudojant TMO galima sutaupyti 20–32% RAM kiekviename serveryje. Sprendimas skirtas naudoti infrastruktūrose, kuriose programos veikia izoliuotuose konteineriuose. TMO branduolio komponentai jau yra įtraukti į Linux branduolį.

„Linux“ branduolio pusėje technologiją palaiko PSI (Pressure Stall Information) posistemis, pasiekiamas nuo 4.20 versijos. PSI jau naudojamas įvairiose mažai atminties turinčiose tvarkyklėse ir leidžia analizuoti informaciją apie laukimo laiką norint gauti įvairius išteklius (CPU, atmintį, I/O). Naudodami PSI, naudotojų erdvės procesoriai gali tiksliau įvertinti sistemos apkrovos lygius ir sulėtėjimo modelius, todėl anomalijas galima nustatyti anksti, kol jos dar neturi pastebimo poveikio našumui.

Vartotojo erdvėje TMO teikia Senpai komponentas, kuris per cgroup2 dinamiškai koreguoja programų konteinerių atminties limitą pagal duomenis, gautus iš PSI. Senpai per PSI analizuoja prasidėjusio resursų trūkumo požymius, įvertina programų jautrumą atminties prieigos sulėtėjimui ir bando nustatyti konteineriui reikalingą minimalų atminties dydį, kuriam esant operatyviojoje atmintyje lieka darbui reikalingi duomenys, bei lydinčią informaciją. duomenys, esantys failo talpykloje arba šiuo metu tiesiogiai nenaudojami, išvedami į apsikeitimo skaidinį.

Facebook pristatė TMO mechanizmą, leidžiantį sutaupyti 20-32% serverių atminties

Taigi TMO esmė yra išlaikyti procesus griežtai sunaudojant atminties dietą, verčiant keisti nepanaudotus atminties puslapius, kurių išstūmimas neturi pastebimos įtakos našumui (pavyzdžiui, puslapiai, kurių kodas naudojamas tik inicijavimo metu, ir vienkartiniai). duomenis disko talpykloje). Skirtingai nuo informacijos iškeldinimo į apsikeitimo skaidinį reaguojant į atminties spaudimą, TMO duomenys iškeliami remiantis aktyviu numatymu.

Vienas iš iškeldinimo kriterijų yra prieigos prie atminties puslapio nebuvimas 5 minutes. Tokie puslapiai vadinami šaltosios atminties puslapiais ir vidutiniškai sudaro apie 35% programos atminties (priklausomai nuo programos tipo, yra nuo 19% iki 65%). Taikant išankstinę teisę atsižvelgiama į veiklą, susijusią su anoniminiais atminties puslapiais (programos paskirta atmintis) ir failų talpykloje naudojama atmintimi (paskirta branduolio). Kai kuriose programose pagrindinis sunaudojimas yra anoniminė atmintis, tačiau kitose taip pat svarbi failų talpykla. Siekdama išvengti talpyklos išstūmimo disbalanso, TMO naudoja naują puslapių paieškos algoritmą, kuris proporcingai iškrauna anoniminius puslapius ir puslapius, susijusius su failo talpykla.

Retai naudojamų puslapių perkėlimas į lėtesnę atmintį neturi didelės įtakos našumui, tačiau gali žymiai sumažinti techninės įrangos sąnaudas. Duomenys išplaunami į SSD diskus arba į suspaustą apsikeitimo sritį RAM. Kalbant apie duomenų baito saugojimo kainą, NVMe SSD naudojimas yra iki 10 kartų pigesnis nei glaudinimas RAM.

Facebook pristatė TMO mechanizmą, leidžiantį sutaupyti 20-32% serverių atminties


Šaltinis: opennet.ru

Добавить комментарий