Facebook esitteli TMO-mekanismin, jonka avulla voit säästää 20-32% palvelimien muistista

Facebookin (Venäjän federaatiossa kielletty) insinöörit julkaisivat raportin TMO-teknologian (Transparent Memory Offloading) käyttöönotosta viime vuonna, mikä mahdollistaa huomattavia säästöjä palvelimien RAM-muistissa siirtämällä työhön tarpeettomia toissijaisia ​​tietoja halvemmille asemille, kuten NVMe. SSD -levyt. Facebook arvioi, että TMO:n käyttäminen voi säästää 20–32 % RAM-muistista kullakin palvelimella. Ratkaisu on suunniteltu käytettäväksi infrastruktuureissa, joissa sovellukset toimivat eristetyissä säiliöissä. TMO:n ytimen puoleiset komponentit sisältyvät jo Linux-ytimeen.

Linux-ytimen puolella tekniikkaa tukee PSI (Pressure Stall Information) -alijärjestelmä, joka on saatavilla julkaisusta 4.20 alkaen. PSI:tä käytetään jo useissa vähän muistia vaativissa käsittelijöissä ja sen avulla voidaan analysoida tietoa erilaisten resurssien (CPU, muisti, I/O) hankinnan odotusajasta. PSI:n avulla käyttäjätilan prosessorit voivat arvioida tarkemmin järjestelmän kuormitustasoja ja hidastuskuvioita, mikä mahdollistaa poikkeamien tunnistamisen varhaisessa vaiheessa, ennen kuin niillä on huomattava vaikutus suorituskykyyn.

Käyttäjätilassa TMO:n tarjoaa Senpai-komponentti, joka säätää cgroup2:n kautta dynaamisesti sovellussäiliöiden muistirajaa PSI:ltä vastaanotetun tiedon perusteella. Senpai analysoi PSI:n kautta resurssipulan alkamisen merkkejä, arvioi sovellusten herkkyyttä muistin käytön hidastumiselle ja yrittää määrittää kontin vaatiman muistin vähimmäiskoon, jolla toimintaan tarvittavat tiedot jäävät RAM-muistiin, ja siihen liittyvän tiedostovälimuistiin tallennetut tiedot tai tiedot, joita ei käytetä suoraan tällä hetkellä, pakotetaan ulos swap-osioon.

Facebook esitteli TMO-mekanismin, jonka avulla voit säästää 20-32% palvelimien muistista

TMO:n ydin on siis pitää prosessit tiukassa muistinkulutuksen ruokavaliossa pakottamalla vaihtamaan käyttämättömät muistisivut, joiden poistaminen ei merkittävästi vaikuta suorituskykyyn (esim. sivut, joiden koodia käytetään vain alustuksen yhteydessä ja kertakäyttöisiä levyn välimuistissa olevat tiedot). Toisin kuin tietojen häätö swap-osioon vastauksena muistin paineeseen, TMO:ssa tiedot häädetään ennakoivan ennusteen perusteella.

Yksi häätökriteereistä on se, että muistisivua ei voida käyttää 5 minuutin ajan. Tällaisia ​​sivuja kutsutaan kylmämuistisivuiksi ja ne muodostavat keskimäärin noin 35 % sovellusmuistista (sovelluksen tyypistä riippuen vaihteluväli on 19 % - 65 %). Preemption ottaa huomioon anonyymeihin muistisivuihin (sovelluksen varaama muisti) ja tiedostojen välimuistiin (ytimen varaama) liittyvän toiminnan. Joissakin sovelluksissa pääasiallinen kulutus on anonyymiä muistia, mutta toisissa myös tiedostovälimuisti on tärkeä. Välimuistin häätöepätasapainon välttämiseksi TMO käyttää uutta sivutusalgoritmia, joka häätää anonyymit sivut ja tiedostovälimuistiin liittyvät sivut suhteellisesti.

Harvoin käytettyjen sivujen työntäminen hitaampaan muistiin ei vaikuta merkittävästi suorituskykyyn, mutta voi merkittävästi vähentää laitteistokustannuksia. Tiedot huuhdellaan SSD-asemille tai RAM-muistin pakatulle sivutusalueelle. NVMe SSD:n käyttö on jopa 10 kertaa halvempaa kuin RAM-muistin pakkaaminen tavun tallennuskustannusten kannalta.

Facebook esitteli TMO-mekanismin, jonka avulla voit säästää 20-32% palvelimien muistista


Lähde: opennet.ru

Lisää kommentti