Facebook ha presentato un meccanismo TMO, che consente di risparmiare dal 20 al 32% di memoria sui server

Gli ingegneri di Facebook (vietato in Russia) hanno pubblicato un rapporto sull'implementazione dell'anno scorso della tecnologia TMO (Transparent Memory Offloading), che consente di risparmiare significativamente memoria RAM sui server trasferendo i dati secondari non necessari per l'esecuzione del lavoro su dispositivi di archiviazione più economici, come i dischi NVMe SSD. Secondo Facebook, l'uso di TMO consente di risparmiare dal 20 al 32% di RAM su ciascun server. La soluzione è progettata per essere utilizzata in infrastrutture in cui le applicazioni vengono eseguite in contenitori isolati. I componenti TMO in esecuzione a livello di kernel sono già inclusi nel kernel di Linux.

A livello di kernel, il funzionamento della tecnologia è garantito dal sottosistema PSI (Pressure Stall Information), disponibile a partire dalla versione 4.20. PSI è già utilizzato in vari gestori di carenza di memoria e permette di analizzare informazioni sui tempi di attesa per l'accesso a diverse risorse (CPU, memoria, input/output). Utilizzando PSI, i gestori nello spazio utente possono valutare più accuratamente il livello di congestione del sistema e il tipo di rallentamento, permettendo di identificare le anomalie nelle fasi iniziali, quando non impattano ancora visibilmente sulle prestazioni.

Nello spazio utente, il funzionamento di TMO è garantito dal componente Senpai, che attraverso cgroup2 corregge dinamicamente il limite di memoria per i contenitori delle applicazioni sulla base dei dati forniti da PSI. Senpai analizza i segnali di inizio carenza di risorse tramite PSI, valuta la sensibilità delle applicazioni al rallentamento dell'accesso alla memoria e cerca di determinare la dimensione minima della memoria necessaria per il contenitore, in modo che i dati richiesti per il funzionamento rimangano in RAM, mentre i dati accessori, presenti nella cache dei file o non utilizzati direttamente in quel momento, vengono trasferiti nell'area di swap.

Facebook ha presentato un meccanismo TMO, che consente di risparmiare dal 20 al 32% di memoria sui server

Pertanto, l'essenza di TMO è quella di mantenere i processi in una stretta dieta in termini di consumo di memoria, forzando il trasferimento delle pagine di memoria non utilizzate nell'area di swap, il cui spostamento non influisce significativamente sulle prestazioni (ad esempio, pagine con codice utilizzato solo durante l'inizializzazione e dati utilizzati sporadicamente nella cache dei dischi). A differenza dello spostamento delle informazioni nell'area di swap in risposta a una carenza di memoria, in TMO i dati vengono spostati in base a previsioni proattive.

Uno dei criteri per lo spostamento è l'assenza di accesso alla pagina di memoria per 5 minuti. Tali pagine sono chiamate fredde (cold memory page) e costituiscono in media circa il 35% della memoria delle applicazioni (a seconda del tipo di applicazioni, ci può essere una variazione dal 19% al 65%). Durante il trasferimento, viene considerata l'attività associata alle pagine di memoria anonime (memoria allocata dall'applicazione) e alla memoria utilizzata per la cache dei file (allocata dal kernel). In alcune applicazioni, il consumo principale è legato alla memoria anonima, ma in altre, anche la cache dei file ha un grande valore. Per evitare squilibri nel trasferimento di memoria nella cache, TMO utilizza un nuovo algoritmo di swap che sposta le pagine anonime e le pagine associate alla cache dei file in modo proporzionale.

Il trasferimento di pagine poco utilizzate nella memoria più lenta non incide significativamente sulle prestazioni, ma consente di ridurre notevolmente i costi dell'hardware. I dati vengono trasferiti su unità SSD o in una zona compressa di swap nella memoria RAM. In termini di costo per byte di dati, l'uso di NVMe SSD è fino a 10 volte più economico rispetto all'uso della compressione nella memoria RAM.

Facebook ha presentato un meccanismo TMO, che consente di risparmiare dal 20 al 32% di memoria sui server


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster