Ottimizzazione della strategia di swapping in Linux 6.18
La gestione della memoria in Linux ha fatto un significativo balzo in avanti con la versione 6.18 del kernel. Uno dei principali progressi è il miglioramento della strategia di cluster sweep nel codice di swapping. Questo meccanismo è cruciale: determina come vengono selezionate le pagine di memoria per il trasferimento su disco quando la RAM raggiunge i suoi limiti. Perfezionando questo metodo, Linux è in grado di gestire meglio grandi allocazioni di memoria in scenari ad alta concorrenza.
Un esempio concreto illustra bene questo progresso: un ingegnere di Tencent ha valutato le prestazioni di una compilazione del kernel con 96 processi in parallelo, utilizzando 10 GB di zRAM (una memoria compressa nella RAM) e 64 KB di pagine giganti trasparenti (mTHP). I risultati sono stati spettacolari, con una riduzione dell’overhead di sistema di quasi il 50% e un calo significativo del tasso di errore dello swap. Questo miglioramento delle prestazioni riflette un uso più efficiente della RAM e dello swap, contribuendo alla stabilità del kernel in condizioni intensive.
Inoltre, questa ottimizzazione è particolarmente apprezzata per ambienti multi-tasking e server in cui lo swap viene utilizzato per lunghi periodi di tempo. La gestione dello swap a grana fine è legata non solo alle prestazioni di base, ma anche al process manager che dipende dalla disponibilità di risorse di memoria. Una migliore politica di swap evita blocchi prolungati dovuti alla saturazione del buffer.
- Scansione dei cluster migliorata per ridurre i tempi operativi durante gli swap di grandi dimensioni
- Migliore integrazione con la gestione di zRAM e THP (Transparent Huge Pages)
- Riduzione degli errori di scrittura dello swap, evitando rallentamenti e crash di sistema
- Prestazioni ottimizzate durante la compilazione e i carichi pesanti
Questi miglioramenti risolvono i problemi spesso riscontrati sulle macchine che sostituiscono Solaris con Linux, dove l’aumento dei carichi di lavoro causa spesso rallentamenti legati alla gestione della memoria. Questo sviluppo segna quindi un passo importante nell’ottimizzazione del sistema per le recenti distribuzioni Linux. Per approfondire questo aspetto tecnico, vale la pena notare che la rimozione del livello di indirezione Zpool, implementata anch’essa in questa versione, contribuisce a semplificare e velocizzare il percorso critico delle operazioni di memoria nel kernel.Scopri come gestire in modo efficiente la memoria in Linux 6.18: suggerimenti, strumenti e best practice per ottimizzare le prestazioni e la stabilità del tuo sistema. Nuove funzionalità per le pagine di memoria nel kernel Linux

Questa riprogettazione migliora le prestazioni di Linux per server e workstation tipici, dove l’accesso intensivo ai file è la norma. Ad esempio, database o file server vedranno un throughput migliorato grazie alla riduzione del sovraccarico associato alla gestione granulare delle pagine di memoria.
Introduzione di file mappati per migliorare la gestione delle pagine Ottimizzazione della cache di memoria per letture di grandi dimensioni Riduzione delle chiamate al disco grazie a una gestione più intelligente della cache
Adattamento alle architetture multi-core tramite una migliore parallelizzazione nella gestione della memoria
Questi progressi, tuttavia, indeboliscono alcune precedenti pratiche di ottimizzazione e potrebbero incoraggiare gli amministratori di sistema a rivedere le proprie procedure di ottimizzazione, in particolare con l’emergere di meccanismi come le pagine trasparenti, che ora possono essere parzialmente disabilitate a livello di processo grazie all’estensione PR_SET_THP_DISABLE. Questa funzionalità offre agli sviluppatori di applicazioni e agli operatori di server un controllo granulare per disabilitare il THP “always-on” a favore di un comportamento on-demand (modalità madvise). Tale granularità evita gli impatti negativi del THP su determinati carichi specifici, mantenendo al contempo i vantaggi per il sistema nel suo complesso, aumentando la flessibilità nella gestione dinamica della memoria. Questo lavoro fa parte di un approccio globale per il miglioramento continuo del kernel, già discusso in merito ai driver Rust nel kernel per una maggiore robustezza del codice ( dettagli sull’integrazione di Rust in Linux
- ).
- https://www.youtube.com/watch?v=aWQiLlk-dgU
- Gestione dello swap migliorata e impatto su ibernazione e stabilità
- Lo swap, lo spazio su disco dedicato alla compensazione della RAM satura, vede il suo ruolo rafforzato in Linux 6.18 con l’introduzione preliminare delle
tabelle di swapcome cache di swap. Questa nuova struttura consente una migliore organizzazione e ottimizzazione dell’accesso allo swap, fondamentale in un contesto in cui l’ibernazione
dipende direttamente dalla qualità della gestione dello swap per salvaguardare lo stato della RAM.L’organizzazione basata su tabelle migliora la reattività durante le operazioni di lettura/scrittura dello swap, riducendo il rischio di instabilità o lunghi tempi di attesa al riavvio di una macchina. Contribuisce inoltre a ridurre i problemi che i sistemi Linux devono affrontare durante il multitasking su macchine con dischi lenti o affollati. Questo è un fattore chiave per la robustezza del kernel Linux, in particolare negli ambienti professionali.Allo stesso tempo, è importante anche ottimizzare la gestione della memoria dovuta all’accesso alla ZRAM, poiché questo tipo di memoria compressa velocizza gli scambi di swap/sistema, limitando al contempo l’usura di SSD o unità meccaniche. Ciò mantiene prestazioni di sistema fluide anche in caso di carico di memoria elevato. Introduzione di tabelle di swap per uno swap più fluido e stabile
Tempo di accesso ridotto e migliore reattività del sistema
Miglioramento dell’uso della memoria zRAM compressa per ottimizzare la gestione della memoria Questi miglioramenti si inseriscono in un contesto di crescente utilizzo di Linux per server mission-critical e workstation mobili, dove l’equilibrio tra velocità di accesso alla memoria e stabilità del kernel è essenziale. Fanno anche parte della lunga lista di ottimizzazioni volte a ridurre l’impatto di Spectre/Meltdown e vulnerabilità di sicurezza simili, in particolare sulle architetture Zen, che sono ancora in evoluzione in base agli ultimi aggiornamenti del kernel (gestione della mitigazione Meltdown Lite). Scopri come funziona la gestione della memoria in Linux 6.18: ottimizzazione, allocazione, utilizzo della RAM e monitoraggio delle risorse per prestazioni migliori.Miglioramenti ai ruoli dell’OOM killer e all’allocazione della memoria in Rust Tra i punti salienti del Kernel 6.18 ci sono i miglioramenti all’
Out-Of-Memory Killer (OOM Killer), il gestore automatico responsabile della liberazione della memoria quando il sistema si trova in una situazione critica. Questo componente essenziale per la stabilità impedisce il crash completo del server o della workstation a causa dell’esaurimento della memoria.
Gli sviluppatori hanno perfezionato la logica di selezione dei processi e la reattività, limitando così le terminazioni intempestive e migliorando la gestione dinamica della RAM durante i picchi di carico. L’efficacia dell’OOM Killer ha un impatto diretto sulla stabilità del kernel e sulla continuità del servizio in condizioni di carico elevato.
- Inoltre, l’ascesa del linguaggio Rust nel kernel Linux è accompagnata da una migliore integrazione all’interno del gestore della memoria. Sono state sviluppate astrazioni Rust per le strutture dati Maple Tree per soddisfare meglio i requisiti di driver grafici come Nouveau o il sistema Nova. Miglioramenti agli algoritmi OOM Killer per una migliore selezione dei processi
- Riduzione delle interruzioni dovute a terminazioni di processo non necessarie
- Introduzione di astrazioni Rust nella gestione della memoria e negli alberi Maple
- Supporto migliorato per i driver hardware tramite queste nuove astrazioni Questo contributo apre la strada a sistemi Linux più sicuri e robusti, facilitando l’emergere di applicazioni critiche e creando spazio per un codice di memoria più affidabile ed efficiente. La comunità sta seguendo da vicino questo importante sviluppo, che è ora considerato un passo decisivo per il kernel Linux. Trovate un aneddoto tecnico sull’argomento in questo articolo molto completo sull’
adozione di Rust nel kernel.https://www.youtube.com/watch?v=49hbaLuUsqcMicro-ottimizzazioni e rimozione di layer obsoleti per un Kernel leggero

responsabile del processo
e le prestazioni complessive del sistema. L’esempio emblematico è la rimozione dello strato indirezionale di Zpool, ormai considerato superfluo. La sua scomparsa semplifica il percorso di accesso ai dati in memoria, riducendo così la latenza e il peso del Kernel in memoria. Allo stesso modo, sono state apportate piccole modifiche per ottimizzare le operazioni di lettura nella cache delle pagine, riducendo il tempo richiesto per eseguire accessi di memoria di grandi dimensioni. Queste ottimizzazioni “invisibili” sulla carta contribuiscono tuttavia ad alleggerire il carico della CPU e ad aumentare la reattività dei moderni sistemi Linux, dalla macchina embedded ai server ad alte prestazioni.Rimozione dello strato indiretto di Zpool per alleggerire il Kernel
Ottimizzazioni mirate ai percorsi di lettura critici memorizzati nella cache Bilanciamento delle funzioni di memoria per ridurre l’ingombro della CPU Consolidamento dei miglioramenti per una migliore stabilità ed efficienza
Questi microaggiustamenti fanno parte di un costante processo di ottimizzazione del kernel, sempre più necessario con l’intensificarsi dell’uso di Linux nelle varie architetture. Completano le principali funzionalità sopra menzionate, promuovendo un ambiente di memoria potente e agile che consente di rispondere in modo efficace ai carichi applicativi moderni, in particolare quelli che richiedono
- gestione della memoria
- intenso e dinamico.
- Questo lavoro meticoloso, anche se meno visibile, è al centro dell’eccellenza tecnica che ci si aspetta da Linux, da scoprire più in dettaglio
- distribuzioni Linux veloci
che beneficiano pienamente di questi progressi.scopri come cambia la gestione della memoria in Linux 6.18: nuove funzionalità, ottimizzazioni delle prestazioni e consigli pratici per amministratori e sviluppatori.
