Facebook представи механизма TMO, който позволява спестяване на 20-32% памет на сървърите.

Инженеры от Facebook (забран в РС) публикуваха доклад за внедряването миналата година на технологията TMO (Transparent Memory Offloading), която позволява значителна икономия на оперативна памет на сървърите, като изтласква ненужните за работа вторични данни на по-евтини носители, като NVMe SSD дискове. Според оценките на Facebook, внедряването на TMO позволява спестяване от 20 до 32% ОЗУ на всеки сървър. Решението е предназначено за приложения, които се стартират в изолирани контейнери. Компонентите, работещи в ядрото на TMO, вече са включени в ядрото на Linux.

Работата на TMO в ядрото на Linux се осигурява от подсистемата PSI (Pressure Stall Information), предоставяна от версия 4.20 насам. PSI вече се използва в различни обработващи механизми за недостиг на памет и позволява анализ на информация за времето на изчакване за получаване на различни ресурси (CPU, памет, вход/изход). С помощта на PSI, обработващите механизми в потребителското пространство могат по-точно да оценят нивото на натовареност на системата и характера на забавянето на работата, което позволява откриване на отклонения на най-ранен етап, когато те все още не оказват значително влияние върху производителността.

В потребителското пространство работата на TMO се осигурява от компонента Senpai, който чрез cgroup2 динамично коригира ограниченията на паметта за контейнерите на приложенията на базата на данните, получени от PSI. Senpai анализира признаците за начало на недостиг на ресурси чрез PSI, оценява чувствителността на приложенията към забавяне на достъпа до паметта и се опитва да определи минимално необходимия размер на паметта за контейнера, при който нужните за работа данни остават в ОЗУ, а съпътстващите данни, които са натрупани в файловия кеш или в момента не се използват пряко, се изтласкват в разширението за обмен.

Facebook представи механизма TMO, който позволява спестяване на 20-32% памет на сървърите.

Същността на TMO е да поддържа процесите на строга диета по отношение на консумацията на памет, принудително прехвърляйки неизползваните страници памет в зоната за размяна, чието изтласкване не влияе значително на производителността (например, страниците с код, използван само при инициализация, и единично използваните данни в дисковия кеш). За разлика от изтласкването на информация в зоната за размяна в отговор на недостиг на памет, при TMO данните се изтласкват на базата на предварително прогнозиране.

Като един от критериите за изтласкване се използва отсъствието на обращения към страницата на паметта в продължение на 5 минути. Подобни страници се наричат студени (cold memory page) и в средно образуват около 35% от паметта на приложенията (в зависимост от вида приложения, вариацията е от 19% до 65%). При изтласкването се отчита активността, свързана с анонимните страници на паметта (памет, предоставяна от приложението) и паметта, използвана при кеширане на файлове (предоставяна от ядрото). В някои приложения основното потребление е свързано с анонимната памет, но в други голямо значение има и файловият кеш. За да се избегне дисбаланс при изтласкването на памет в кеша, TMO прилага нов алгоритъм за размяна, който изтласква анонимни страници и страници, свързани с файловия кеш, пропорционално.

Изтласкването на рядко използвани страници в по-бавна памет не влияе много на производителността, но позволява значително да се намалят разходите за оборудване. Данните се изтласкват на SSD-накопители или в компресирана област в оперативна памет. По отношение на цената за съхранение на байт данни, използването на NVMe SSD е до 10 пъти по-евтино от сжатието в оперативната памет.

Facebook представи механизма TMO, който позволява спестяване на 20-32% памет на сървърите.


Източник: opennet.ru
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster