Facebook introducerede TMO-mekanismen, der giver dig mulighed for at spare 20-32% af hukommelsen på servere

Ingeniører fra Facebook (forbudt i Den Russiske Føderation) offentliggjorde en rapport om implementeringen sidste år af TMO (Transparent Memory Offloading) teknologi, som muliggør betydelige besparelser i RAM på servere ved at fortrænge sekundære data, der ikke er nødvendige for arbejde, til billigere drev, såsom NVMe SSD-diske. Facebook anslår, at brug af TMO kan spare 20 til 32 % af RAM på hver server. Løsningen er designet til brug i infrastrukturer, hvor applikationer kører i isolerede containere. TMO-komponenter på kernesiden er allerede inkluderet i Linux-kernen.

På Linux-kernesiden understøttes teknologien af ​​PSI-undersystemet (Pressure Stall Information), der er tilgængeligt fra udgivelse 4.20. PSI bruges allerede i forskellige håndteringsprogrammer med lav hukommelse og giver dig mulighed for at analysere information om ventetiden for at få forskellige ressourcer (CPU, hukommelse, I/O). Med PSI kan brugerpladsprocessorer mere præcist vurdere systembelastningsniveauer og nedbremsningsmønstre, hvilket gør det muligt at identificere uregelmæssigheder tidligt, før de har en mærkbar indflydelse på ydeevnen.

I brugerrummet leveres TMO af Senpai-komponenten, som gennem cgroup2 dynamisk justerer hukommelsesgrænsen for applikationsbeholdere baseret på data modtaget fra PSI. Senpai analyserer tegnene på begyndelsen af ​​ressourcemangel via PSI, vurderer applikationers følsomhed over for langsommere hukommelsesadgang og forsøger at bestemme den mindste hukommelsesstørrelse, der kræves af containeren, hvor de data, der kræves til drift, forbliver i RAM, og den medfølgende data afviklet i filcachen eller ikke er direkte brugt i øjeblikket, tvinges ud til swap-partitionen.

Facebook introducerede TMO-mekanismen, der giver dig mulighed for at spare 20-32% af hukommelsen på servere

Essensen af ​​TMO er således at holde processer på en streng diæt med hensyn til hukommelsesforbrug, hvilket tvinger udskiftning af ubrugte hukommelsessider, hvis udsættelse ikke mærkbart påvirker ydeevnen (for eksempel sider med kode, der kun bruges under initialisering og engangsbrug data i diskcachen). I modsætning til at smide information ud til swap-partitionen som reaktion på hukommelsestryk, bliver data i TMO smidt ud baseret på proaktiv forudsigelse.

Et af kriterierne for udsættelse er fraværet af adgang til hukommelsessiden i 5 minutter. Sådanne sider kaldes kolde hukommelsessider og udgør i gennemsnit omkring 35 % af applikationshukommelsen (afhængigt af applikationstypen er der et interval fra 19 % til 65 %). Preemption tager højde for aktivitet forbundet med anonyme hukommelsessider (hukommelse tildelt af applikationen) og hukommelse, der bruges til filcache (tildelt af kernen). I nogle applikationer er hovedforbruget anonym hukommelse, men i andre er filcachen også vigtig. For at undgå ubalancer i cache-eviction, bruger TMO en ny personsøgningsalgoritme, der udelukker anonyme sider og sider, der er forbundet med filcachen proportionelt.

At skubbe sjældent brugte sider ind i langsommere hukommelse har ikke en væsentlig indflydelse på ydeevnen, men kan reducere hardwareomkostningerne betydeligt. Data skylles til SSD-drev eller til et komprimeret swap-område i RAM. Med hensyn til omkostningerne ved at gemme en byte af data er det op til 10 gange billigere at bruge en NVMe SSD end at bruge komprimering i RAM.

Facebook introducerede TMO-mekanismen, der giver dig mulighed for at spare 20-32% af hukommelsen på servere


Kilde: opennet.ru

Tilføj en kommentar