Facebook introduserte TMO-mekanismen, som lar deg spare 20-32% av minnet på servere

Ingeniører fra Facebook (forbudt i den russiske føderasjonen) publiserte en rapport om implementeringen i fjor av TMO (Transparent Memory Offloading) teknologi, som tillater betydelige besparelser i RAM på servere ved å forskyve sekundære data som ikke er nødvendige for arbeid til billigere stasjoner, for eksempel NVMe SSD-disker. Facebook anslår at bruk av TMO kan spare 20 til 32 % av RAM på hver server. Løsningen er designet for bruk i infrastrukturer der applikasjoner kjøres i isolerte beholdere. Komponenter på kjernesiden av TMO er allerede inkludert i Linux-kjernen.

På Linux-kjernesiden støttes teknologien av PSI (Pressure Stall Information) delsystemet, tilgjengelig fra og med versjon 4.20. PSI brukes allerede i ulike behandlere med lavt minne og lar deg analysere informasjon om ventetiden for å skaffe ulike ressurser (CPU, minne, I/O). Med PSI kan prosessorer for brukerplass mer nøyaktig vurdere systembelastningsnivåer og nedbremsingsmønstre, slik at uregelmessigheter kan identifiseres tidlig før de har en merkbar innvirkning på ytelsen.

I brukerplass leveres TMO av Senpai-komponenten, som gjennom cgroup2 dynamisk justerer minnegrensen for applikasjonsbeholdere basert på data mottatt fra PSI. Senpai analyserer tegn på utbruddet av ressursmangel via PSI, vurderer sensitiviteten til applikasjoner for nedgang i minnetilgang og prøver å bestemme minimumsminnestørrelsen som kreves av beholderen, hvor dataene som kreves for drift forblir i RAM, og den medfølgende data som er lagt inn i filbufferen eller ikke brukes direkte i for øyeblikket, tvinges ut til swap-partisjonen.

Facebook introduserte TMO-mekanismen, som lar deg spare 20-32% av minnet på servere

Derfor er essensen av TMO å holde prosesser på en streng diett når det gjelder minneforbruk, og tvinge til å bytte ubrukte minnesider hvis utkastelse ikke påvirker ytelsen vesentlig (for eksempel sider med kode som kun brukes under initialisering og engangsbruk data i diskbufferen). I motsetning til å kaste ut informasjon til swap-partisjonen som svar på minnetrykk, blir data i TMO kastet ut basert på proaktiv prediksjon.

Et av kriteriene for utkastelse er fravær av tilgang til minnesiden i 5 minutter. Slike sider kalles kaldminnesider og utgjør i gjennomsnitt omtrent 35 % av applikasjonsminnet (avhengig av applikasjonstype er det et område fra 19 % til 65 %). Preemption tar hensyn til aktivitet knyttet til anonyme minnesider (minne tildelt av applikasjonen) og minne som brukes til filbufring (tildelt av kjernen). I noen applikasjoner er hovedforbruket anonymt minne, men i andre er filbufferen også viktig. For å unngå ubalanser med cacheutkasting, bruker TMO en ny personsøkingsalgoritme som kaster ut anonyme sider og sider knyttet til filbufferen proporsjonalt.

Å skyve sider som brukes sjeldent inn i et tregere minne har ikke en betydelig innvirkning på ytelsen, men kan redusere maskinvarekostnadene betydelig. Data skylles til SSD-stasjoner eller til et komprimert bytteområde i RAM. Når det gjelder kostnadene ved å lagre en byte med data, er bruk av en NVMe SSD opptil 10 ganger billigere enn å bruke komprimering i RAM.

Facebook introduserte TMO-mekanismen, som lar deg spare 20-32% av minnet på servere


Kilde: opennet.ru

Legg til en kommentar