Linux 6.9 offrirà un avvio più veloce su sistemi di grandi dimensioni con molta RAM

Tux, la mascotte del kernel Linux

Il kernel Linux è la spina dorsale dei sistemi operativi (OS) Linux ed è l'interfaccia fondamentale tra l'hardware di un computer ei suoi processi.

Pochi giorni fa Condividiamo qui sul blog la notizia di uno dei cambiamenti Cosa troveremo al lancio del kernel Linux 6.9, che è attualmente in fase di sviluppo e sono già state rese note diverse modifiche e quello che abbiamo annunciato è che EXT2 è già passato nella categoria degli obsoleti e anche che l'uso del vecchio driver NTFS verrà abbandonato a favore di quello driver sviluppato da Paragon Software.

Ora nelle ultime notizie riguardo alle nuove funzionalità che Linux 6.9 ci presenterà, è questo Questa versione del Kernel porterà un miglioramento significativo nei tempi di avvio per gli utenti che gestiscono sistemi con grandi quantità di RAM, in particolare quelli che Fanno uso di pagine HugeTLB. Ciò si traduce in una notevole riduzione del tempo necessario per inizializzare queste pagine durante il processo di avvio del sistema.

Articolo correlato:
Paragon ha rilasciato un'implementazione NTFS per il kernel Linux

E la modifica aggiunta in Linux 6.9 consentirà ai sistemi con un gran numero di pagine HugeTLB di sperimentare una notevole riduzione all'ora di inizio. Ad esempio, su sistemi da 2 TB in cui vengono inizializzate 1800 pagine da 1 GB, che attualmente impiegano da 1 a 2 secondi su un totale di 10 secondi, il che rappresenta senza dubbio un notevole miglioramento di questi tempi. Allo stesso modo, su host Intel da 12 TB in cui vengono inizializzate 11 pagine da 776 GB, operazione che può richiedere più di un minuto, si noterà una riduzione significativa dei tempi di avvio.

Questi progressi sono stati resi possibili dal lavoro dedicato dello sviluppatore Linux Gang Li di Bytedance, che ha implementato una serie di patch sottoposte a più revisioni per garantire un'esecuzione efficiente. L'infrastruttura del kernel esistente, come padata_do_multithreaded, è stato utilizzato con modifiche minime per ottenere questi risultati.

Due aggiornamenti nella v6…

– Risolto potenziale bug in Together_bootmem_prealloc_node
L'implementazione padata_do_multithreaded garantisce che ciascuno
L'attività Together_bootmem_prealloc_node gestisce un nodo. Tuttavia, l'API descritta
nel commento padata_do_multithreaded indica che anche padata_do_multithreaded
È possibile assegnare più nodi a un'attività Together_bootmem_prealloc_node.

Per evitare possibili errori derivanti da future modifiche a padata_do_multithreaded,
insieme_bootmem_prealloc_parallel viene introdotto per racchiudere il file
insieme_bootmem_prealloc_node.

Losevole di questi miglioramenti sono particolarmente notevole in ambienti in cui la disponibilità del servizio e il tempo di attività del sistema sono fondamentali, come nel caso degli hyperscaler e delle grandi organizzazioni che gestiscono server molto grandi. La riduzione del tempo di avvio durante i riavvii è di grande vantaggio per garantire tempi di attività più rapidi ed efficienti.

A parte quello, Vale anche la pena menzionare un altro cambiamento che sono stati inclusi in Linux 6.9 che è una patch di un esperto ingegnere Linux di Intel, che introduce una tecnica migliorata per limitare la larghezza di banda della memoria negli aggiornamenti della cache x86, simile a quello utilizzato da Intel nelle CPU RDT e AMD EPYC con il codice resctrl.

L'autore della patch afferma che:

Il ciclo di feedback MBA_mbps aumenta la limitazione quando un gruppo utilizza una larghezza di banda maggiore rispetto a quella impostata dall'utente nel file di schema e diminuisce la limitazione quando è al di sotto del target.

Vale la pena ricordare che la nuova tecnica per limitare la larghezza di banda della memoria è progettato per gestire in modo più efficiente i carichi di lavoro con livelli di carico non uniformis, evitando inutili penalità che si verificavano nelle versioni precedenti del kernel.

Per evitare inutili fluttuazioni di velocità in ciascuna iterazione, il flag "delta_comp" viene utilizzato per indicare le modifiche effettive nella larghezza di banda da registrare nell'iterazione successiva in "delta_bw". La limitazione viene ridotta solo se la larghezza di banda corrente più delta_bw è inferiore al target dell'utente.

Come tale viene menzionato L'algoritmo funziona bene con carichi di lavoro a larghezza di banda costante, ma potrebbe non riuscire se il carico di lavoro cambia proprio quando cambia la limitazione. Per risolvere questo problema, è stata implementata una tecnica più semplice che calcola il potenziale aumento della larghezza di banda se la limitazione viene ridotta al livello successivo superiore, garantendo che rimanga al di sotto del target dell'utente prima di ridurre la limitazione.

Se si interessati a saperne di più, è possibile consultare i dettagli nei seguenti link: