A Facebook mérnökei közölték, beszámolón keresztül a technológia bevezetése TMO (Transparent Memory Offloading) tavaly, ami lehetővé teszi a RAM jelentős megtakarítását a szervereken másodlagos adatok áthelyezésével, amelyek nem szükségesek az olcsóbb meghajtókon, például az NVMe SSD-ken való működéshez.
Facebook becslések szerint a TMO a RAM 20–32%-át takarítja meg minden szerveren. A megoldást olyan infrastruktúrákban való használatra tervezték, ahol az alkalmazások elszigetelt tárolókban futnak. A TMO kernel oldali összetevői már benne vannak a Linux kernelben.
A Linux kernel oldalán a művelet a technológia a PSI alrendszer biztosítja (Nyomáselállási információ), a 4.20-as verziótól elérhető.
PSI már használják a különböző memória meghajtókban és lehetővé teszi a várakozási időre vonatkozó információk elemzését különböző erőforrások (CPU, memória, I/O) megszerzéséhez. A PSI segítségével a felhasználói terület processzorai pontosabban tudják felmérni a rendszerterhelési és lassulási mintákat, lehetővé téve az anomáliák észlelését, mielőtt azok észrevehetően befolyásolnák a teljesítményt.
A felhasználói térben a Senpai komponens TMO-t futtat, amely dinamikusan módosítja az alkalmazástárolók memóriakorlátját a cgroup2-n keresztül a PSI-től kapott adatok alapján.
Senpai elemzi a forráshiány kezdetére utaló jeleket PSI-n keresztül, kiértékeli az alkalmazások érzékenységét a lassú memóriaelérésre és megpróbálja meghatározni a szükséges memória minimális méretét egy olyan tároló esetében, amelyben a feladathoz szükséges adatok a RAM-ban maradnak, és a fájlgyorsítótárban lévő vagy jelenleg közvetlenül nem használt kapcsolódó adatok a swap partícióra kényszerülnek.
A Transparent Memory Offload (TMO) a Meta megoldása heterogén adatközponti környezetekhez. Bevezet egy új Linux-kernel-mechanizmust, amely valós időben méri a CPU-, a memória- és az I/O-erőforráshiány miatti veszteséget. Ezen információk alapján és az alkalmazás előzetes ismerete nélkül a TMO automatikusan beállítja a heterogén eszközre, például tömörített memóriára vagy SSD-re való feltöltéshez szükséges memória mennyiségét. Ezt az eszköz teljesítményjellemzői és az alkalmazás lassabb memóriaelérésekre való érzékenysége alapján teszi.
Ezért, a TMO lényege a folyamatok "szigorú diétán" tartása memóriafelhasználás szempontjából, ami arra kényszeríti a nem használt memóriaoldalakat, hogy a swap partícióra helyezzék át, amelyek eltávolítása nem befolyásolja észrevehetően a teljesítményt (például olyan oldalak, amelyek kódja csak az inicializálás során használatos, és az egyszeri adatok gyorsítótárban vannak a lemezen). Ellentétben azzal, hogy a kevés memória miatt az adatokat a swap partícióra öblítik, a TMO prediktív előrejelzés alapján törli az adatokat.
A memóriaoldalhoz való hozzáférés 5 percen belüli hiánya a preferencia egyik kritériuma. Ezeket az oldalakat hideg oldalaknak nevezzük, és átlagosan az alkalmazás memóriájának körülbelül 35%-át teszik ki (az alkalmazás típusától függően 19% és 65% között van eltérés).
A beállítás figyelembe veszi a névtelen memórialapokhoz (az alkalmazás által lefoglalt memória) és a fájlok gyorsítótárazásához használt (a kernel által lefoglalt) memóriához kapcsolódó tevékenységeket. Egyes alkalmazásokban az anonim memória a fő fogyasztás, de másokban a fájl gyorsítótár is nagyon fontos.
A memória gyorsítótárba ürítése során fellépő egyensúlyhiány elkerülése érdekében a TMO új lapozási algoritmust használ, amely arányosan kiüríti a névtelen oldalakat és a fájl-gyorsítótárhoz társított oldalakat.
A ritkán használt oldalak memória lassítására tolása nincs nagy hatással a teljesítményre, de jelentősen csökkentheti a hardverköltségeket. Az adatok SSD-kre vagy a RAM-ban lévő tömörített csereterületre kerülnek. Egy bájt adattárolás árán az NVMe SSD-k használata akár 10-szer olcsóbb, mint a RAM-on történő tömörítés.
Végül, ha többet szeretne megtudni róla, akkor tanulmányozza a részleteket A következő linken.
ez használható normál számítógépeken normál alkalmazásokkal?