TMO, un meccanismo di Facebook che consente di risparmiare RAM sui server

Gli ingegneri di Facebook hanno rivelato, attraverso un rapporto, l'introduzione della tecnologia TMO (Transparent Memory Offloading) l'anno scorso, che permette di risparmiare significativamente RAM sui server spostando i dati secondari che non sono necessari per funzionare su unità più economiche come gli SSD NVMe.

Facebook stima che TMO risparmi tra il 20% e il 32% di RAM su ciascun server. La soluzione è progettata per l'uso in infrastrutture in cui le applicazioni vengono eseguite in contenitori isolati. I componenti lato kernel di TMO sono già inclusi nel kernel Linux.

Sul lato del kernel Linux, l'operazione della tecnologia è fornito dal sottosistema PSI (Informazioni sullo stallo della pressione), fornito a partire dalla versione 4.20.

PSI già utilizzato in vari driver di memoria insufficiente e permette di analizzare le informazioni sui tempi di attesa per varie risorse (CPU, memoria, I/O). Con PSI, i processori dello spazio utente possono valutare in modo più accurato il carico del sistema e i modelli di rallentamento, consentendo il rilevamento delle anomalie prima che abbiano un impatto evidente sulle prestazioni.

Nello spazio utente, il componente Senpai esegue TMO, che regola dinamicamente il limite di memoria per i contenitori delle applicazioni tramite cgroup2 in base ai dati ricevuti dal PSI.

Senpai analizza i segnali dell'inizio di una carenza di risorse tramite PSI, valuta la sensibilità delle applicazioni per rallentare l'accesso alla memoria e cerca di determinare la dimensione minima di memoria richiesta per un container, in cui i dati richiesti per il lavoro rimangono nella RAM e i dati correlati che si trovano nella cache dei file o non sono attualmente utilizzati direttamente, vengono forzati alla partizione di swap.

Transparent Memory Offload (TMO) è la soluzione di Meta per ambienti di data center eterogenei. Introduce un nuovo meccanismo del kernel Linux che misura il lavoro perso a causa della carenza di risorse in CPU, memoria e I/O in tempo reale. Guidato da queste informazioni e senza alcuna conoscenza preliminare dell'applicazione, TMO regola automaticamente la quantità di memoria da scaricare su un dispositivo eterogeneo, come una memoria compressa o un SSD. Lo fa in base alle caratteristiche prestazionali del dispositivo e alla sensibilità dell'applicazione agli accessi alla memoria più lenti.

Pertanto, l'essenza del TMO è mantenere i processi su una "dieta rigorosa" in termini di consumo di memoria, costringendo le pagine di memoria inutilizzate a essere spostate nella partizione di scambio, la cui rimozione non influisce in modo significativo sulle prestazioni (ad esempio, pagine con codice utilizzato solo durante l'inizializzazione e dati una tantum memorizzati nella cache su disco). A differenza dello svuotamento delle informazioni nella partizione di scambio in risposta alla memoria insufficiente, TMO scarica i dati in base alla previsione predittiva.

L'assenza di accesso a una pagina di memoria entro 5 minuti viene utilizzata come uno dei criteri di preferenza. Queste pagine sono dette pagine fredde e, in media, costituiscono circa il 35% della memoria dell'applicazione (a seconda del tipo di applicazione, c'è una variazione dal 19% al 65%).

La preferenza tiene conto dell'attività associata alle pagine di memoria anonime (memoria allocata dall'applicazione) e alla memoria utilizzata per la memorizzazione nella cache dei file (allocata dal kernel). In alcune applicazioni la memoria anonima è il consumo principale, ma in altre anche la cache dei file è molto importante.

Per evitare squilibri durante lo svuotamento della memoria nella cache, TMO utilizza un nuovo algoritmo di paging che svuota proporzionalmente le pagine anonime e le pagine associate alla cache dei file.

Spingere le pagine utilizzate di rado su una memoria più lenta non ha un enorme impatto sulle prestazioni, ma può ridurre significativamente i costi hardware. I dati vengono inviati a SSD o spazio di scambio compresso nella RAM. Al costo di memorizzare un byte di dati, l'utilizzo di SSD NVMe è fino a 10 volte più economico rispetto all'utilizzo della compressione su RAM.

Infine, se sei interessato a saperne di più, puoi consultare i dettagli Nel seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Elian suddetto

    può essere utilizzato in normali computer con app normali?