Facebook tutvustas TMO mehhanismi, mis võimaldab säästa serverites 20-32% mälust

Facebooki (Vene Föderatsioonis keelatud) insenerid avaldasid eelmisel aastal aruande TMO (Transparent Memory Offloading) tehnoloogia kasutuselevõtu kohta, mis võimaldab serverites oluliselt säästa RAM-i, tõrjudes tööks mittevajalikud sekundaarsed andmed odavamatele draividele, nagu NVMe. SSD-kettad. Facebooki hinnangul võib TMO kasutamine säästa 20–32% RAM-i igas serveris. Lahendus on mõeldud kasutamiseks infrastruktuurides, kus rakendused töötavad isoleeritud konteinerites. TMO kernelipoolsed komponendid on juba Linuxi kernelis.

Linuxi kerneli poolel toetab tehnoloogiat PSI (Pressure Stall Information) alamsüsteem, mis on saadaval alates versioonist 4.20. PSI on juba kasutusel erinevates vähese mäluga töötlejates ja võimaldab analüüsida infot erinevate ressursside (CPU, mälu, I/O) hankimise ooteaja kohta. PSI abil saavad kasutajaruumi protsessorid süsteemi koormustaset ja aeglustusmustreid täpsemalt hinnata, võimaldades kõrvalekaldeid varakult tuvastada, enne kui need jõudlusele märgatavat mõju avaldavad.

Kasutajaruumis pakub TMO-d Senpai komponent, mis cgroup2 kaudu kohandab dünaamiliselt PSI-lt saadud andmete põhjal rakenduste konteinerite mälulimiiti. Senpai analüüsib PSI kaudu ressursipuuduse ilmnemise märke, hindab rakenduste tundlikkust mälule juurdepääsu aeglustumisele ja püüab määrata konteineri minimaalset mälumahtu, mille juures tööks vajalikud andmed RAM-i jäävad, ning sellega kaasnevat. faili vahemällu salvestatud või hetkel otseselt mittekasutatud andmed sunnitakse vahetuspartitsioonile välja.

Facebook tutvustas TMO mehhanismi, mis võimaldab säästa serverites 20-32% mälust

Seega on TMO põhiolemus hoida protsesse mälutarbimise osas rangel dieedil, sundides vahetama kasutamata mälulehti, mille väljatõstmine jõudlust oluliselt ei mõjuta (näiteks lehed, mille koodi kasutatakse ainult lähtestamise ajal ja ühekordselt kasutatavad andmed ketta vahemälus). Erinevalt teabe väljatõstmisest vahetussektsioonile vastuseks mälu survele, tõstetakse TMO-s andmed välja ennetava prognoosi alusel.

Väljatõstmise üheks kriteeriumiks on mälulehele juurdepääsu puudumine 5 minuti jooksul. Selliseid lehti nimetatakse külmmälu lehtedeks ja need moodustavad keskmiselt umbes 35% rakenduste mälust (olenevalt rakenduse tüübist on vahemik 19% kuni 65%). Preemption võtab arvesse tegevust, mis on seotud anonüümsete mälulehtedega (rakenduse eraldatud mälu) ja failide vahemällu salvestamiseks kasutatava mäluga (jaotab kernel). Mõnes rakenduses on põhitarbimiseks anonüümne mälu, kuid teistes on oluline ka faili vahemälu. Vahemälu väljatõstmise tasakaalustamatuse vältimiseks kasutab TMO uut otsingualgoritmi, mis tõstab proportsionaalselt välja anonüümsed ja faili vahemäluga seotud lehed.

Harva kasutatavate lehtede aeglasemasse mällu surumine ei mõjuta oluliselt jõudlust, kuid võib oluliselt vähendada riistvarakulusid. Andmed loputatakse SSD-draividesse või RAM-i tihendatud vahetusalasse. Andmebaidi salvestamise maksumuse osas on NVMe SSD kasutamine kuni 10 korda odavam kui RAM-i tihendamise kasutamine.

Facebook tutvustas TMO mehhanismi, mis võimaldab säästa serverites 20-32% mälust


Allikas: opennet.ru

Lisa kommentaar