Facebook hà introduttu u mecanismu TMO, chì permette di salvà 20-32% di memoria in i servitori

L'ingegneri di Facebook (proibitu in a Federazione Russa) anu publicatu un rapportu nantu à l'implementazione di a tecnulugia TMO (Transparent Memory Offloading) l'annu passatu, chì permette un risparmiu significativu in RAM in i servitori, spostando e dati secundari chì ùn sò micca necessarii per u travagliu à unità più economiche, cum'è NVMe. Dischi SSD. Facebook stima chì l'usu di TMO pò salvà da 20 à 32% di RAM in ogni servitore. A suluzione hè pensata per l'usu in infrastrutture induve l'applicazioni funzionanu in cuntenituri isolati. I cumpunenti di u kernel-side di TMO sò digià inclusi in u kernel Linux.

Da u latu di u kernel Linux, a tecnulugia hè supportata da u sottosistema PSI (Pressure Stall Information), dispunibule da a versione 4.20. PSI hè digià utilizatu in diversi gestori di memoria bassa è permette di analizà l'infurmazioni nantu à u tempu d'attesa per ottene diverse risorse (CPU, memoria, I / O). Cù PSI, i prucessori di u spaziu di l'utilizatori ponu valutà più accuratamente i livelli di carica di u sistema è i mudelli di rallentamentu, chì permettenu l'anomali di esse identificati prima, prima ch'elli anu un impattu notu in u rendiment.

In u spaziu di l'utilizatori, TMO hè furnitu da u cumpunente Senpai, chì, attraversu cgroup2, aghjusta dinamicamente u limitu di memoria per i cuntenituri di l'applicazione basatu nantu à e dati ricevuti da PSI. Senpai analizza i segni di l'iniziu di carenza di risorse via PSI, valuta a sensibilità di l'applicazioni à rallentamenti in l'accessu à a memoria è prova di determinà a dimensione minima di memoria necessaria da u containeru, à quale i dati necessarii per l'operazione restanu in RAM, è l'accumpagnamentu. I dati stallati in u cache di u schedariu o ùn sò micca utilizati direttamente in u mumentu, sò furzati à a partizione swap.

Facebook hà introduttu u mecanismu TMO, chì permette di salvà 20-32% di memoria in i servitori

Cusì, l'essenza di TMO hè di mantene i prucessi in una dieta stretta in quantu à u cunsumu di memoria, furzendu a scambià di e pagine di memoria inutilizate chì l'evacuazione ùn hà micca influenza notevolmente u rendiment (per esempiu, pagine cù codice utilizatu solu durante l'inizializazione, è unicu usu). dati in a cache di discu). A cuntrariu di l'evicting information to the swap partition in risposta à a pressione di memoria, in TMO i dati sò scacciati nantu à a prediczione proattiva.

Unu di i criterii di eviction hè l'absenza di accessu à a pagina di memoria per 5 minuti. Tali pagine sò chjamati pagine di memoria fredda è in media custituiscenu circa 35% di a memoria di l'applicazione (secondu u tipu d'applicazione, ci hè un intervallu da 19% à 65%). A preemption piglia in contu l'attività assuciata à e pagine di memoria anonima (memoria attribuita da l'applicazione) è a memoria utilizata per a cache di file (assignata da u kernel). In certi applicazioni, u cunsumu principale hè a memoria anonima, ma in altri u cache di u schedariu hè ancu impurtante. Per evità i sbilanciamenti di eviction di cache, TMO usa un novu algoritmu di paginazione chì scaccia e pagine anonime è e pagine associate à u cache di u schedariu proporzionalmente.

Impulsà e pagine usate raramente in una memoria più lenta ùn hà micca un impattu significativu in u rendiment, ma pò riduce significativamente i costi di hardware. I dati sò sbulicati in unità SSD o in una zona di swap compressa in RAM. In quantu à u costu di almacenà un byte di dati, l'usu di un SSD NVMe hè finu à 10 volte più prezzu di l'usu di cumpressione in RAM.

Facebook hà introduttu u mecanismu TMO, chì permette di salvà 20-32% di memoria in i servitori


Source: opennet.ru

Add a comment