Инжењери из компаније Фејсбук (забрањене у Русији) објавили су прошле године извештај о имплементацији ТМО (Transparent Memory Offloading) технологије, која значајно штеди РАМ меморију на серверима премештањем непотребних секундарних података на јефтиније уређаје за складиштење података као што су NVMe SSD дискови. Фејсбук процењује да коришћење ТМО-а штеди 20 до 32% РАМ меморије на сваком серверу. Решење је дизајнирано за употребу у инфраструктурама где апликације раде у изолованим контејнерима. ТМО компоненте на страни језгра су већ укључене у језгро. Linux.
Са стране језгра Linux Технологију подржава подсистем Pressure Stall Information (PSI), доступан од верзије 4.20. PSI се већ користи у разним обрађивачима оптерећења меморије и омогућава анализу информација о времену чекања за различите ресурсе (CPU, меморија, I/O). Користећи PSI, обрађивачи корисничког простора могу прецизније проценити ниво оптерећења система и природу успоравања, омогућавајући откривање одступања у најранијој могућој фази, пре него што значајно утичу на перформансе.
У корисничком простору, ТМО обезбеђује компонента Сенпаи, која, преко цгроуп2, динамички прилагођава ограничење меморије за контејнере апликација на основу података примљених од ПСИ. Сенпаи преко ПСИ анализира знаке почетка несташице ресурса, процењује осетљивост апликација на успоравање приступа меморији и покушава да одреди минималну величину меморије потребну за контејнер, при којој подаци потребни за рад остају у РАМ-у, а пратеће подаци смештени у кеш датотеке или се тренутно не користе директно у свап партицији.

Дакле, суштина ТМО-а је да задржи процесе на строгој дијети у смислу потрошње меморије, приморавајући да се замене неискоришћене меморијске странице чије избацивање не утиче приметно на перформансе (на пример, странице са кодом који се користи само током иницијализације, и за једнократну употребу). подаци у кешу диска). За разлику од избацивања информација на свап партицију као одговор на притисак меморије, у ТМО подаци се избацују на основу проактивног предвиђања.
Један од критеријума за деложацију је одсуство приступа меморијској страници у трајању од 5 минута. Такве странице се називају хладне меморијске странице и у просеку чине око 35% меморије апликације (у зависности од врсте апликације, постоји распон од 19% до 65%). Преузимање узима у обзир активности повезане са анонимним меморијским страницама (меморијом коју додељује апликација) и меморијом која се користи за кеширање датотека (додељује језгро). У неким апликацијама главна потрошња је анонимна меморија, али у другим је кеш датотека такође важан. Да би се избегао неуравнотеженост избацивања кеша, ТМО користи нови алгоритам страница који пропорционално уклања анонимне странице и странице повезане са кешом датотеке.
Гурање ретко коришћених страница у спорију меморију нема значајан утицај на перформансе, али може значајно да смањи трошкове хардвера. Подаци се испуштају на ССД дискове или у компримовану свап област у РАМ-у. Што се тиче трошкова складиштења бајта података, коришћење НВМе ССД-а је до 10 пута јефтиније од коришћења компресије у РАМ-у.

Извор: опеннет.ру
