Dal fronte kernel Linux sono da poco arrivate una serie di patch firmate da Kyungsik Lee che abilitano la compressione LZ4 per il cuore del nostro sistema operativo preferito.
LZ4 è un algoritimo di compressione real-time (ovviamente lossless) nato come naturale evoluzione di LZO, l’algoritmo con il quale è attualmente compresso il kernel. Sebbene un kernel compresso con LZ4 risulti più grande rispetto al risultato dell’applicazione di LZO, la velocità di decompressione è decisamente maggiore e tocca picchi di 1Gb/s per core. L’effetto più ovvio che si ottiene con il passaggio a LZ4 è quindi un incremento della velocità nell’avvio del sistema.
Da alcuni test preliminari su sistemi ARMv7 è risultato che, a fronte di un incremento dell’8% nella dimensione del kernel, la velocità di decompressione è passata da 301ms per LZO a 167ms per LZ4. Vantaggi del tutto trascurabili per un utilizzo desktop o mobile del kernel ma sicuramente non da ignorare.
La nuova modalità di compressione potrebbe entrare a pieno titolo fra le caratteristiche della versione 3.9 del kernel Linux: teniamoci pronti.

Il mio serverino domestico basato su plug computer armv5 ringraziera`
di Riccardo - 30 gennaio 2013 - 09:47
Infatti la gente non capisce quanto sia importante avere un boot immediato perché pensa solo alle macchine desktop, ma linux è usato anche su apparecchi come router, centraline, pannelli, etc e li è importante staccare e riattaccare la spina ed avere tutto sottomano subito.
Un 8% di spazio in più occupato rispetto ad una aumento notevole delle performance mi sembra un compromesso accettabilissimo.
di michelangelog - 30 gennaio 2013 - 10:18
ma come vengono risparmiati 301-167=134 millesimi di secondi?
a fronte di 8% di spazio in più? quando mi si aggiorna ubuntu un kernel sono quasi 40mb o sbaglio.. +8% li sento già di più.. vabhè.. l’evoluzione è l’evoluzione
di giancarlo g. - 30 gennaio 2013 - 10:35
LZ4 è un ottimo algoritmo di compressione.
Anche lo ZFS lo ha adottato di recente.
.
Proprio sulla base di questo vi posto il link relativo all’implementazione di illumos, dove lo sviluppatore ha postato dei documenti interessanti con i risultati dei suoi benchmark tra più algoritmi (tra cui LZ4).
https://www.illumos.org/issues/3035
di atomix600 - 30 gennaio 2013 - 10:43
“quando mi si aggiorna ubuntu un kernel sono quasi 40mb o sbaglio..”
Penso che tu stia calcolando il “peso” dell’immagine (il file vmlinuz che si trova in /boot) unito a quello dei moduli.
.
Ciò che pesa di più sono i moduli, perchè Ubuntu come molte altre distro usano un kernel generic (ovvero, un kernel dalla configurazione minimale che usa un ramdisk per ottenere il modulo del file system, necessario a montare la root del sistema).
Ciò che viene compresso con LZ4 è solo l’immagine del kernel. I moduli rimangono binari non compressi. Diciamo che l’aumento di peso, sarà limitato.
.
Ad esempio, la mia immagine del kernel pesa 3080KB. L’8% di 3080KB è 246.4KB. Un aumento del tutto infinitesimale.
di atomix600 - 30 gennaio 2013 - 10:52
“rispetto ad una aumento notevole delle performance”
.
cioè risparmi una volta al boot circa 140 millisecondi,
stica che “aumento notevole delle performance” …
Da un po tempo a questa parte solo PAGLIACCIATE.
di telperion - 30 gennaio 2013 - 12:50
Pagliacciate saranno per te. Lavora con migliaia di host virtualizzati in KVM per fare stress-test di protocolli di rete e poi ne riparliamo.
di Davide Aversa - 30 gennaio 2013 - 12:57
@Davide
non lavoro con “con migliaia di host virtualizzati in KVM”, come penso nessuno qua.
Per me restano PAGLIACCIATE.
E credo di poter esprimere la mia opinione non vincolante.
asd
di telperion - 30 gennaio 2013 - 13:05
Beh.. io l’ho detto che per l’utente normale non serve a nulla.
Però la reputo una buona cosa, LZ4 è un algoritmo moderno e funzionale. Non ci vedo nulla di male nell’inserire il suo supporto nel Kernel.
di Davide Aversa - 30 gennaio 2013 - 13:09
Concordo sul fatto che sia una buona cosa la sua adozione.
Tra l’altro spero lo adotti anche Btrfs, perchè la riduzione dell’overhead nelle fasi di I/O più massicce in subvolumi/dataset compressi è notevole.
di atomix600 - 30 gennaio 2013 - 13:50
stresstest, mica lo farai in eterno. Anche se dura un’ora di più, fai 10 prove, 10 ore.
Non credo possano farti una cosi grande differenza.
di lablinux - 30 gennaio 2013 - 17:13