Linux: il kernel sarà compresso con LZ4?

linux

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.

Tag:

Commenti

  1. [1]

    Il mio serverino domestico basato su plug computer armv5 ringraziera` :-)

  2. [2]

    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.

  3. [3]

    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 :)

  4. [4]

    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

  5. [5]

    “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. :)

  6. [6]

    “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.

  7. [7]

    Pagliacciate saranno per te. Lavora con migliaia di host virtualizzati in KVM per fare stress-test di protocolli di rete e poi ne riparliamo.

  8. [8]

    @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

  9. [9]

    Beh.. io l’ho detto che per l’utente normale non serve a nulla. :D 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.

  10. [10]

    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.

  11. [11]

    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.

Inserisci il tuo commento