Facebook ngenalake mekanisme TMO sing ngidini sampeyan nyimpen 20-32% memori ing server

Insinyur saka Facebook (dilarang ing Federasi Rusia) nerbitake laporan babagan implementasi teknologi TMO (Transparent Memory Offloading) taun kepungkur, sing ngidini penghematan sing signifikan ing RAM ing server kanthi mindhah data sekunder sing ora dibutuhake kanggo kerja menyang drive sing luwih murah, kayata NVMe. SSD - disk. Facebook ngira yen nggunakake TMO bisa ngirit 20 nganti 32% RAM ing saben server. Solusi kasebut dirancang kanggo digunakake ing infrastruktur ing ngendi aplikasi mbukak ing wadhah sing terisolasi. Komponen sisih kernel TMO wis kalebu ing kernel Linux.

Ing sisih kernel Linux, teknologi iki didhukung dening subsistem PSI (Pressure Stall Information), sing kasedhiya wiwit rilis 4.20. PSI wis digunakake ing macem-macem handler-memori kurang lan ngijini sampeyan kanggo njelasno informasi bab wektu nunggu kanggo njupuk macem-macem sumber daya (CPU, memori, I / O). Kanthi PSI, pemroses ruang pangguna bisa luwih akurat netepake tingkat beban sistem lan pola kalem, supaya anomali bisa diidentifikasi luwih awal, sadurunge duwe pengaruh sing nyata ing kinerja.

Ing ruang pangguna, TMO diwenehake dening komponen Senpai, sing, liwat cgroup2, kanthi dinamis nyetel watesan memori kanggo wadhah aplikasi adhedhasar data sing ditampa saka PSI. Senpai nganalisa pratandha saka wiwitan kekurangan sumber daya liwat PSI, netepake sensitivitas aplikasi kanggo slowdowns ing akses memori lan nyoba kanggo nemtokake ukuran memori minimal sing dibutuhake dening wadhah, kang data dibutuhake kanggo operasi tetep ing RAM, lan gawan. data dienggoni ing cache file utawa ora langsung digunakake ing wayahe, dipeksa metu kanggo pemisahan pertukaran.

Facebook ngenalake mekanisme TMO sing ngidini sampeyan nyimpen 20-32% memori ing server

Mangkono, inti saka TMO yaiku kanggo njaga proses ing diet sing ketat babagan konsumsi memori, meksa ngganti kaca memori sing ora digunakake sing pengusiran ora mengaruhi kinerja kanthi nyata (contone, kaca kanthi kode sing digunakake mung sajrone wiwitan, lan nggunakake siji-sijine. data ing cache disk). Boten kados ngusir informasi menyang partisi swap kanggo nanggepi tekanan memori, ing data TMO diusir adhedhasar prediksi proaktif.

Salah sawijining kritΓ©ria kanggo eviction yaiku ora ana akses menyang kaca memori sajrone 5 menit. Kaca kasebut diarani kaca memori kadhemen lan rata-rata nggawe sekitar 35% memori aplikasi (gumantung saka jinis aplikasi, ana sawetara saka 19% nganti 65%). Preemption njupuk menyang akun aktivitas sing digandhengake karo kaca memori anonim (memori sing dialokasikan dening aplikasi) lan memori sing digunakake kanggo caching file (dialokasikan dening kernel). Ing sawetara aplikasi konsumsi utama memori anonim, nanging ing liyane cache file uga penting. Kanggo ngindhari ketidakseimbangan pangusir cache, TMO nggunakake algoritma paging anyar sing ngusir kaca lan kaca anonim sing digandhengake karo cache file kanthi proporsional.

Nyorong kaca sing jarang digunakake menyang memori sing luwih alon ora duwe pengaruh sing signifikan ing kinerja, nanging bisa nyuda biaya hardware kanthi signifikan. Data disiram menyang drive SSD utawa menyang area swap sing dikompres ing RAM. Ing syarat-syarat biaya nyimpen bait data, nggunakake NVMe SSD nganti 10 kaping luwih murah tinimbang nggunakake komprèsi ing RAM.

Facebook ngenalake mekanisme TMO sing ngidini sampeyan nyimpen 20-32% memori ing server


Source: opennet.ru

Add a comment