Facebook je predstavio TMO mehanizam koji vam omogućava da uštedite 20-32% memorije na serverima

Inženjeri iz Facebooka (zabranjenog u Ruskoj Federaciji) objavili su izvještaj o implementaciji prošle godine TMO (Transparent Memory Offloading) tehnologije, koja omogućava značajne uštede u RAM-u na serverima premeštanjem sekundarnih podataka koji nisu potrebni za rad na jeftinije diskove, kao što je NVMe SSD diskovi. Facebook procjenjuje da korištenje TMO može uštedjeti 20 do 32% RAM-a na svakom serveru. Rješenje je dizajnirano za korištenje u infrastrukturama gdje aplikacije rade u izoliranim kontejnerima. Komponente TMO-a na strani kernela su već uključene u Linux kernel.

Na strani jezgre Linuxa, tehnologija je podržana od strane PSI (Pressure Stall Information) podsistema, dostupnog počevši od izdanja 4.20. PSI se već koristi u raznim rukovaocima s malo memorije i omogućava vam da analizirate informacije o vremenu čekanja za dobijanje različitih resursa (CPU, memorija, I/O). Sa PSI, procesori korisničkog prostora mogu preciznije procijeniti nivoe opterećenja sistema i obrasce usporavanja, omogućavajući da se anomalije identifikuju rano, prije nego što imaju primjetan utjecaj na performanse.

U korisničkom prostoru, TMO obezbeđuje komponenta Senpai, koja, preko cgroup2, dinamički prilagođava ograničenje memorije za kontejnere aplikacije na osnovu podataka primljenih od PSI. Senpai analizira znakove početka nestašice resursa putem PSI-a, procjenjuje osjetljivost aplikacija na usporavanje pristupa memoriji i pokušava odrediti minimalnu veličinu memorije potrebnu za kontejner, pri kojoj podaci potrebni za rad ostaju u RAM-u, te prateći podaci koji su smješteni u kešu datoteka ili se u ovom trenutku ne koriste direktno, tjeraju se na swap particiju.

Facebook je predstavio TMO mehanizam koji vam omogućava da uštedite 20-32% memorije na serverima

Dakle, suština TMO-a je da zadrži procese na strogoj dijeti u smislu potrošnje memorije, prisiljavajući zamjenu neiskorištenih memorijskih stranica čije izbacivanje ne utječe značajno na performanse (na primjer, stranice sa kodom koji se koristi samo tokom inicijalizacije i jednokratne podaci u predmemoriji diska). Za razliku od izbacivanja informacija na swap particiju kao odgovor na pritisak memorije, u TMO podaci se izbacuju na osnovu proaktivnog predviđanja.

Jedan od kriterijuma za deložaciju je odsustvo pristupa memorijskoj stranici u trajanju od 5 minuta. Takve stranice se nazivaju stranicama hladne memorije i u prosjeku čine oko 35% memorije aplikacije (u zavisnosti od vrste aplikacije, postoji raspon od 19% do 65%). Preuzimanje uzima u obzir aktivnosti povezane sa anonimnim memorijskim stranicama (memorijom koju dodeljuje aplikacija) i memorijom koja se koristi za keširanje datoteka (dodeljuje jezgro). U nekim aplikacijama glavna potrošnja je anonimna memorija, ali u drugim je keš datoteka također važan. Da bi se izbjegle neravnoteže izbacivanja keša, TMO koristi novi algoritam stranica koji proporcionalno izbaci anonimne stranice i stranice povezane s kešom datoteka.

Guranje rijetko korištenih stranica u sporiju memoriju nema značajan utjecaj na performanse, ali može značajno smanjiti troškove hardvera. Podaci se ispuštaju na SSD diskove ili u komprimovanu swap oblast u RAM-u. Što se tiče troškova pohranjivanja bajta podataka, korištenje NVMe SSD-a je do 10 puta jeftinije od korištenja kompresije u RAM-u.

Facebook je predstavio TMO mehanizam koji vam omogućava da uštedite 20-32% memorije na serverima


izvor: opennet.ru

Dodajte komentar