In questa guida vedremo come velocizzare i processi d’avvio di Arch Linux e derivate come ad esempio Manjaro attraverso Readahead.

L’arrivo di systemd in Arch Linux ha introdotto moltissime migliorie alla distribuzione velocizzando sia il processo d’avvio che spegnimento e riavvio del sistema. Caratteristica principale di systemd è quella di avviare più servizi in parallelo rendendo quindi più veloce il processo d’avvio del sistema, inoltre include una migliore gestione dei vari demoni (tramite systemctl) consentendoci di avviare velocemente display manager preferito, network manager ecc oltre a Readahead.
Readahead è una raccolta di strumenti che pre-caricano file durante il processo di boot per accelerare l’avvio del sistema operativo. Attivando quindi Readahead  con systemd andremo a velocizzare l’avvio di Arch Linux e derivate, il tutto logicamente in relazione alla versione del kernel e al tipo di disco rigido presente nel nostro sistema.

Con Readahead andremo ad attivare una serie di strumenti che creano automaticamente liste di file da pre-caricare ordinandoli a seconda della loro posizione sul disco oltre a precaricare le tabelle degli inode sui filesystem inoltre andremo ad avviare i file evitando che il sistema aggiorni la loro data di accesso, evitando quindi scritture ulteriori su disco.

Per attivare Readaheadin in Arch Linux e derivate basta digitare da terminale:

sudo systemctl enable systemd-readahead-collect systemd-readahead-replay

e riavviamo.

Prima di notare un netto miglioramento nei temi d’avvio del sistema dovremo riavviare almeno 2/3 volte la nostra distribuzione.

E’ possibile disattivare Readahead digitando:

sudo systemctl disable systemd-readahead-collect systemd-readahead-replay

Readahead è disponibile anche per Fedora, Ubuntu e altre distribuzioni rilasceremo a breve le guide dedicate.

  • Hombre Maledicto

    Io sapevo che si chiama “Readahead” non “Readaheadin”.

    Read-ahead 😉

    Sul fatto che velocizzi il boot è opinionabile, da me l’ha rallentato, e so che è successo ad altri. Di metodi per velocizzare il boot ne ho provati a decine. Poi mi è capitato un SSD, dove vi ho installato la partizione root. Ho preso altre accortezze ed ecco i miei tempi:

    Startup finished in 11.389s (firmware) + 96ms (loader) + 431ms (kernel) + 821ms (initrd) + 4.260s (userspace) = 16.998s

    Notare che questo è dalla schermata dello UEFI bios(serve avere il modulo) fino al caricamento di tutti i servizi. Anche se tende ad oscillare. A volte aggiunge/toglie 1-2 secondi. Oppure li spalma alla c*zzo su valori solitamente stazionari (tipo nell’output di sopra: di solito userspace mi prende 2 secondi, mentre firmware 13 o 15).
    Come dice un amico, systemd è metereopatico!

      • Hombre Maledicto
        • andreazube

          Io l’ho imparato come read-a-head (leggi una testa)
          Prima lo chiamavo readcoso o unreadcoso o simili 😀

          Tecnicamente, su alcune macchina velocizza il boot, su altre lo rallenta. Dipende dalla macchina. Nel mio caso specifico, readahead mi rallenterebbe il boot.

          • Hombre Maledicto

            Infatti! E’ relativo, molto relativo!
            Avendolo riprovato ora, con il “mostro”, lo velocizza!

            Startup finished in 6.010s (firmware) + 95ms (loader) + 431ms (kernel) + 806ms (initrd) + 2.724s (userspace) = 10.067s

            Questo da reboot, non boot a freddo. Comunque facendo comparazioni approssimative, c’è un guadagno di 3 secondi. Aspetto di vedere con il boot domattina.

            Hehe, mi ricordo quando non riuscivi a pronunciarlo 😉

    • mircozorzo

      Opinabile

      • andreazube

        Che readahead possa non dare vantaggi o addirittura dare svantaggi è un datto di fatto, lo dicono persino i dev stessi.

        È opinionabile il fatto che systemd sia “ballerino”, ma per quanto ne so io è vero 🙂

        edit: Ah, era una correzione grammaticale… non avevo neanche notato l’errore xD

      • Hombre Maledicto

        Ah, c*zzo, grazie! 🙂

        Ormai ho il cervello in fumo.
        Le uniche lingue che parlo sono italiano e inglese. Purtroppo a furia di birre sto peggiorando in entrambe 🙁

        • mircozorzo

          🙂 Hai provato a riavviare 2-3 volte come scritto nell’articolo? Di quanto l’ha rallentato? Ciao

          • Hombre Maledicto

            Leggi sotto, la mia risposta ad andreazube 😉
            Resta relativo comunque. Sul mio vecchio pc rallentava, e molto! (parlo di 2 mesi fa).

        • $74736855

          come ti capisco, hombre…

          • Hombre Maledicto

            Mi vai sempre più a genio 😉

          • $74736855

            basta che non mi chiudi in una lampada e poi mi chiedi pure di uscire… p.s. di dove sei, se posso chiedere?

          • Hombre Maledicto

            Di un po’ d’ovunque. Sono di natali brindisini/tedeschi. Poi nella fattispecie ho vissuto un po’ a random per la penisola.
            Al momento sto stabile a Bologna, la città che ho eletto come casa.
            Te?

          • $74736855

            Sassari, lontane origini salernitano-toscane. ho passato 10 anni fra Reggio Emilia e Modena, poi 2 anni a Genova, poi un anno in prov. di Siena. poi ho fatto bancarotta totale, ho ritrovato la mia attuale moglie (su Facebook, pensa te. ci conosciamo da 30 anni, ma ci eravamo persi di vista) che si è prima offerta di ospitarmi, quì a Sassari, poi abbiamo convolato a giuste nozze (in comune, obviously) 2 anni fa. questa è la storia recente. il resto è troppo lungo, sono del ’64…

          • Hombre Maledicto

            Wow! E io che credevo di avere una storia interessante (non propriamente vero) da raccontare. Grosso modo hai girato il paese quanto me (solo che io la toscana l’ho vista solo da turista purtroppo. Gran peccato: regione magnifica, gente
            stupenda) malgrado sono giovane, giusto 24 anni. Ma col mio vecchio, il crucco, ho girato mezza europa e gran parte d’Italia 🙂
            Sei la prima persona – con cui abbia parlato – che ha davvero beneficiato dall’uso di facebook! Poco male se è servito come mezzo per trovare la felicità (matrimonio=felicità?).

          • $74736855

            nel mio caso l’equazione è esatta, sarà che abbiamo 100 anni in due, ma siamo ancora carini e “carichi”;). ora non ho più neanche l’account, su holeface (anche lei l’ha cancellato), mi metteva tristezza, ultimamente.

    • da me rallenta la velocità di boot, ma rende l’avvio del DE più veloce, quasi istantaneo, altrimenti senza di readahead xfce ci metterebbe qualce secondo in più a caricarsi tutto

      • Hombre Maledicto

        Cosa buona e giusta. Magari compilandoti un kernel custom(e se necessario, i driver) ovvii pure alla pecca del pre-DE. Certo se ti va. Lo scazzo non è da poco IMO.
        Io nel frattempo ho contattato un dev di opensuse che lavorava al progetto klyde. Il quale ha scritto un sistema di startup basato su systemd (quindi avvio in parallelo e non consequenziale) per KDE. Purtroppo non mi ha ancora risposto.
        Sarebbe bello avere in una prossima release qualcosa come startactive – che comunque è il futuro di questo Desktop Environment, stando alle dichiarazioni degli sviluppatori coinvolti. Da utente KDE( da me che uso BE::Shell al posto di plasma, sessione vuota, e pochi servizi): la cosa è davvero sentita!

        Se mai lo facesse, lo farei sapere subito a Roberto, per scriverci un articolo. I guadagni dovrebbero essere sensibilmente percepibili (attorno al 50% in meno per lo startup del DE).

    • $74736855

      è arabo: readahead=singolare, readaheadin=plurale… ;D

      • Hombre Maledicto

        LOL.
        Ti meriti un +1 solo per il nick geniale!

        P.s. Un tempo studiavo davvero arabo, ma non mi ricordo una ceppa ecceto “Salam 3aleikum!” Wa enti?

        • $74736855

          XD

    • N-Di

      che modulo serve per conteggiare anche il POST?
      io senza contare il POST avvio in 4secondi netti, avolte 4.300secondi ma comunque sempre sui 4secondi, il mio filesystem root e` F2FS

      • Hombre Maledicto

        Per il firmware, mi è bastato configurare lm_sensors (con la fortuna di avere gran parte dei moduli disponibili), Nota che funziona solo con alcuni sistemi UEFI. Alcuni sistemi UEFI, ci tengo a precisarlo.
        Per initrd basta invece configurare systemd in HOOKS nel file /etc/mkinitcpio.conf al posto di udev, e ricostruire l’initramfs ( se usi lo stock kernel di arch: mkinitcpio -p linux). So che non serve spiegartelo, ma lo scrivo per gli altri che leggeranno.

        Abbiamo grosso modo gli stessi tempi, comunque. Cambia solo la verbosità dell’output di systemd-analyze 😉

        • N-Di

          se e` necesario UEFI io non posso, lo ho disabilitato.
          dagli HOOKs e` gia` da un po’ che ho tolto udev
          quello che non capisco e` perche ultimamente mi esce questo

          Startup finished in 584542y 2w 2d 20h 1min 44.460s (loader) + 2.158s (kernel) + 1.202s (initrd) + 964ms (userspace) = 4.325s

          • Hombre Maledicto

            Pare sia un bug dell’ultima versione di systemd, avevo già visto un altro utente lamentarsene:

            “584542y 2w 2d 20h 1min” ← Esattamente lo stesso valore che riportava.

          • luca canali

            azz boot in 4 secondi?? ma come fai? io nonostante ho portatile con ssd, xfce che mi parte con slim in autologin, ce ne mette 6. La mia root è su ext4 con home separata sempre con ext4. Mi dici come posso recuperare i 2 secondi che ci dividono? premetto che ho sistema EFI e gestisco il boot con REFIND. Per caso è il filesystem f2fs che permette un avvio così fulmineo? o serve qualche altra configurazione particolare?

          • N-Di

            ciao, si F2FS ha dato i suoi risultati, ma per il resto non ho grandi modifiche, magari dipende anche dalle RAM e dalla macchina, io monto 8Gb di RAM a 1600MHz CL 9-9-9-24

    • Gustavo

      su un ssd readhaed è perfettamente inutile, opensuse consiglia di disattivarlo

  • $74736855

    ma è una cosa tipo preload in debian/ubuntu?

No more articles