Facebook het die TMO-meganisme bekendgestel, wat jou toelaat om 20-32% geheue op bedieners te bespaar

Ingenieurs van Facebook (verbied in die Russiese Federasie) het 'n verslag gepubliseer oor die implementering verlede jaar van TMO (Transparent Memory Offloading) tegnologie, wat aansienlike besparings in RAM op bedieners moontlik maak deur sekondêre data wat nie benodig word vir werk te verplaas na goedkoper dryf, soos NVMe SSD -skywe. Facebook skat dat die gebruik van TMO 20 tot 32% van RAM op elke bediener kan bespaar. Die oplossing is ontwerp vir gebruik in infrastruktuur waar toepassings in geïsoleerde houers loop. Kern-kant komponente van TMO is reeds ingesluit in die Linux kern.

Aan die Linux-kernkant word die tegnologie ondersteun deur die PSI (Pressure Stall Information) substelsel, beskikbaar vanaf vrystelling 4.20. PSI word reeds in verskeie lae-geheue-hanteerders gebruik en laat jou toe om inligting oor die wagtyd vir die verkryging van verskeie hulpbronne (CPU, geheue, I/O) te ontleed. Met PSI kan gebruikersruimteverwerkers stelselladingsvlakke en verlangsamingspatrone meer akkuraat evalueer, sodat onreëlmatighede vroeg geïdentifiseer kan word, voordat dit 'n merkbare impak op werkverrigting het.

In gebruikersruimte word TMO verskaf deur die Senpai-komponent, wat deur cgroup2 die geheuelimiet vir toepassingshouers dinamies aanpas op grond van data wat van PSI ontvang is. Senpai ontleed die tekens van die aanvang van hulpbrontekorte via PSI, beoordeel die sensitiwiteit van toepassings vir verlangsamings in geheuetoegang, en probeer om die minimum geheuegrootte wat deur die houer benodig word, te bepaal, waarteen die data wat benodig word vir werking in RAM bly, en die gepaardgaande data wat in die lêerkas gevestig is of nie op die oomblik direk gebruik word nie, word uitgedwing na die ruilpartisie.

Facebook het die TMO-meganisme bekendgestel, wat jou toelaat om 20-32% geheue op bedieners te bespaar

Dus, die essensie van TMO is om prosesse op 'n streng dieet te hou in terme van geheueverbruik, wat die omruiling van ongebruikte geheuebladsye dwing waarvan die uitsetting nie prestasie beduidend beïnvloed nie (byvoorbeeld bladsye met kode wat slegs tydens inisialisering gebruik word, en eenmalige gebruik data in die skyfkas). In teenstelling met die uitsetting van inligting na die ruilpartisie in reaksie op geheuedruk, word data in TMO uitgesit op grond van proaktiewe voorspelling.

Een van die kriteria vir uitsetting is die afwesigheid van toegang tot die geheuebladsy vir 5 minute. Sulke bladsye word koue geheuebladsye genoem en maak gemiddeld sowat 35% van toepassingsgeheue uit (afhangende van die tipe toepassing is daar 'n reeks van 19% tot 65%). Voorkoming neem aktiwiteit in ag wat verband hou met anonieme geheuebladsye (geheue toegeken deur die toepassing) en geheue wat gebruik word vir lêerkas (toegewys deur die kern). In sommige toepassings is die hoofverbruik anonieme geheue, maar in ander is die lêerkas ook belangrik. Om kas-uitsettingswanbalanse te vermy, gebruik TMO 'n nuwe blaai-algoritme wat anonieme bladsye en bladsye wat met die lêerkas geassosieer word proporsioneel uitsit.

Om bladsye wat selde gebruik word in stadiger geheue in te druk, het nie 'n noemenswaardige impak op werkverrigting nie, maar kan hardewarekoste aansienlik verminder. Data word na SSD-aandrywers of na 'n saamgeperste ruilarea in RAM gespoel. Wat die koste van die stoor van 'n greep data betref, is die gebruik van 'n NVMe SSD tot 10 keer goedkoper as om kompressie in RAM te gebruik.

Facebook het die TMO-meganisme bekendgestel, wat jou toelaat om 20-32% geheue op bedieners te bespaar


Bron: opennet.ru

Voeg 'n opmerking