Facebook ieviesa TMO mehānismu, ļaujot serveros ietaupīt 20-32% atmiņas

Inženieri no Facebook (aizliegts Krievijas Federācijā) publicēja ziņojumu par pagājušā gada TMO (Transparent Memory Offloading) tehnoloģijas ieviešanu, kas ļauj ievērojami ietaupīt RAM serveros, pārvietojot sekundāros datus, kas nav nepieciešami darbam, uz lētākiem diskdziņiem, piemēram, NVMe. SSD diski. Facebook lēš, ka, izmantojot TMO, katrā serverī var ietaupīt 20 līdz 32% RAM. Risinājums ir paredzēts izmantošanai infrastruktūrās, kur lietojumprogrammas darbojas izolētos konteineros. TMO kodola puses komponenti jau ir iekļauti Linux kodolā.

Linux kodola pusē tehnoloģiju atbalsta PSI (Pressure Stall Information) apakšsistēma, kas pieejama, sākot ar versiju 4.20. PSI jau tiek izmantots dažādos mazatmiņas apdarinātājos un ļauj analizēt informāciju par gaidīšanas laiku dažādu resursu (CPU, atmiņas, I/O) iegūšanai. Izmantojot PSI, lietotāja vietas procesori var precīzāk novērtēt sistēmas slodzes līmeņus un palēnināšanas modeļus, ļaujot anomālijas noteikt agrīni, pirms tām ir manāma ietekme uz veiktspēju.

Lietotāju telpā TMO nodrošina Senpai komponents, kas, izmantojot cgroup2, dinamiski pielāgo atmiņas ierobežojumu lietojumprogrammu konteineriem, pamatojoties uz datiem, kas saņemti no PSI. Senpai analizē resursu trūkuma pazīmes, izmantojot PSI, novērtē lietojumprogrammu jutīgumu pret piekļuves atmiņai palēnināšanos un mēģina noteikt konteineram nepieciešamo minimālo atmiņas apjomu, pie kura darbībai nepieciešamie dati paliek operatīvajā atmiņā, un pavadošie dati, kas ir nokārtoti faila kešatmiņā vai pašlaik netiek tieši izmantoti, tiek izspiesti mijmaiņas nodalījumā.

Facebook ieviesa TMO mehānismu, ļaujot serveros ietaupīt 20-32% atmiņas

Tādējādi TMO būtība ir saglabāt procesus uz stingras diētas atmiņas patēriņa ziņā, liekot apmainīt neizmantotās atmiņas lapas, kuru izlikšana būtiski neietekmē veiktspēju (piemēram, lapas ar kodu, kas tiek izmantots tikai inicializācijas laikā, un vienreizējās lietošanas). dati diska kešatmiņā). Atšķirībā no informācijas izlikšanas uz mijmaiņas nodalījumu, reaģējot uz atmiņas spiedienu, TMO dati tiek izlikti, pamatojoties uz proaktīvu prognozēšanu.

Viens no izlikšanas kritērijiem ir piekļuves neesamība atmiņas lapai 5 minūtes. Šādas lapas sauc par aukstās atmiņas lapām un vidēji veido aptuveni 35% no lietojumprogrammu atmiņas (atkarībā no lietojumprogrammas veida ir diapazons no 19% līdz 65%). Preemption ņem vērā darbības, kas saistītas ar anonīmām atmiņas lapām (lietojumprogrammas piešķirtā atmiņa) un failu kešatmiņai izmantoto atmiņu (ko piešķir kodols). Dažās lietojumprogrammās galvenais patēriņš ir anonīma atmiņa, bet citās svarīga ir arī failu kešatmiņa. Lai izvairītos no kešatmiņas izņemšanas nelīdzsvarotības, TMO izmanto jaunu peidžeru algoritmu, kas proporcionāli izspiež anonīmas lapas un lapas, kas saistītas ar faila kešatmiņu.

Reti lietotu lapu ievietošana lēnākā atmiņā būtiski neietekmē veiktspēju, taču var ievērojami samazināt aparatūras izmaksas. Dati tiek izskaloti SSD diskos vai saspiestā mijmaiņas apgabalā RAM. Runājot par datu baita glabāšanas izmaksām, NVMe SSD izmantošana ir līdz pat 10 reizēm lētāka nekā RAM saspiešanas izmantošana.

Facebook ieviesa TMO mehānismu, ļaujot serveros ietaupīt 20-32% atmiņas


Avots: opennet.ru

Pievieno komentāru