Rendi l’avvio di Linux più veloce disabilitando i servizi non necessari

Sempre più sistemi operativi si gonfiano di molti servizi che vengono eseguiti in background. Anche se potrebbero non utilizzare molto tempo della CPU, aumentano il tempo di avvio e l’utilizzo della RAM.

Alcune distribuzioni Linux includono “tutto tranne il lavello della cucina”, nel tentativo di semplificare la vita dell’utente. In questo modo cose come la condivisione di file o la stampa funzionano fuori dagli schemi. Sfortunatamente, l’unico modo per farlo è includere centinaia di utilità in modo che tutti trovino qualcosa di cui hanno bisogno.

Fortunatamente, però, i sistemi operativi open source ti danno il potere e la libertà di fare ciò che ritieni opportuno. Ciò significa che puoi disabilitare o rimuovere tutto ciò che non ti serve. La prima opzione, come disabilitare i servizi, verrà esplorata qui. Quando disabiliti, invece di rimuovere, i componenti, c’è meno rischio di rompere definitivamente le cose. E puoi tornare a com’era prima semplicemente riattivando un servizio se noti che qualcosa di utile ha smesso di funzionare.

Analizza il tempo necessario per il caricamento di ciascun servizio

La maggior parte dei sistemi operativi basati su Linux è migrata a Systemd. Tra la suite di utilità che include, c’è un programma che ti consente di analizzare la velocità di avvio del tuo sistema. Nello specifico, mostra il tempo totale necessario per l’avvio e il tempo necessario per il caricamento di ciascun servizio. Si noti che alcuni servizi vengono caricati in parallelo. Quindi, se uno richiede due secondi per caricarsi e l’altro tre secondi, non significa necessariamente che siano necessari cinque secondi in totale. Potrebbe essere molto meno di quello.

Apri un emulatore di terminale e inserisci questo comando:

systemd-analyze

Questo mostra il tempo necessario per il caricamento del kernel Linux e dei servizi di sistema di base, il che significa che non tiene conto del tempo necessario all’avvio dell’interfaccia grafica. Per dirla in altro modo, questo mostra quanto tempo è necessario, dal momento in cui il kernel viene caricato fino a quando non si viene rilasciati nella console Linux, che assomiglia a quanto illustrato di seguito.

systemd-analyze-console

Se non avessi un’interfaccia grafica installata, questo è ciò con cui saresti accolto sullo schermo.

Tuttavia, puoi anche vedere il tempo richiesto dall’interfaccia grafica per inizializzare con questo comando:

systemd-analyze critical-chain graphical.target

systemd-analyze-target-grafico

Ciò mostra che l’interfaccia utente grafica è stata caricata in 2.126 secondi. Questo non tiene conto del tempo necessario per caricare le utilità desktop. Per abilitarli/disabilitarli, avvia il gestore di avvio dell’ambiente desktop.

In relazione :  Come creare un motore di ricerca con SearxNG

Infine, probabilmente il comando più utile ai fini di questo tutorial è:

systemd-analyze blame

systemd-analisi-colpa

Puoi navigare nell’elenco con i tasti freccia o PAGINA SU E PAGINA GIÙ. Premere Q abbandonare.

Usa systemctl per disabilitare i servizi non necessari

Come puoi vedere nell’immagine precedente, il servizio snapd impiega 1.295 secondi per caricarsi. Su un SSD, questo è trascurabile. Ma su un disco rigido, questi tipi di tempi sarebbero dell’ordine di più secondi e alla fine si sommerebbero a molto. Inoltre, su un SSD molte cose si caricano in parallelo con incredibile efficienza. Su un disco rigido è molto difficile caricare i servizi in parallelo. Le testine di lettura che galleggiano sui piatti del disco devono spostarsi da un settore all’altro, quindi è quasi impossibile leggere veramente i dati in parallelo.

Per semplificare, immagina questo: se su un SSD vedresti cinque servizi che richiedono un secondo per l’avvio, è probabile che il tempo totale necessario per caricarli tutti sia inferiore a 1,2 secondi. Se, su un disco rigido, vedi gli stessi cinque servizi inizializzati in un secondo, è probabile che il tempo di caricamento totale sia molto superiore a cinque secondi.

Supponi di non aver bisogno del servizio snapd, che fornisce l’accesso agli snap dell’applicazione containerizzati. Puoi disabilitarlo con questo comando:

sudo systemctl disable snapd.service

Ma, se riavvii, noterai che il demone snap è ancora in esecuzione. Questo perché altre dipendenze potrebbero avviarlo, anche se è disabilitato. Prova a vedere quali possono essere:

systemd-analyze blame | grep snap

systemd-analyze-grep-snap

snapd.seeded.service E snapd.socket sono i colpevoli qui. Un servizio figlio può richiedere di avviare il proprio servizio padre. Quando ne disabiliti uno, gli dici semplicemente di non avviarsi automaticamente all’avvio da solo. Ma esiste un metodo di forza bruta per aggirare questo problema.

Usa systemctl per mascherare un servizio

sudo systemctl mask snapd.service

Questo fondamentalmente rende nullo il file di servizio in modo che le applicazioni non abbiano modo di avviare il servizio.

Nella maggior parte dei casi non è così complicato disabilitare un servizio. Questo esempio è stato scelto per mostrarti come affrontare scenari più complicati. In questo caso, snapd.seeded.service E snapd.socket dovrebbe essere disabilitato o anche mascherato.

Quanto segue mostra il tempo di avvio migliorato.

systemd-analyze-tempo-di-avvio-migliorato

Conclusione

Da 4.078, il tempo di avvio è stato ridotto a 3.452 secondi, il che equivale a una diminuzione di circa il 15%. Non male, considerando che solo un servizio è stato disabilitato, e questo è su un SSD. Su un disco rigido è molto più facile ottenere risultati molto più significativi.

In relazione :  GUARDA: Cristiano Ronaldo arrabbiato schiaffeggia il telefono dalla mano di un fan dopo la sconfitta per 1-0 contro l'Everton in Premier League 2021-22, si scusa con il fan più tardi su Instagram

In questo particolare esempio, più servizi avrebbero potuto essere disabilitati con un comando come: sudo systemctl mask avahi-daemon.service ModemManager.service thermald.service pppd-dns.service.

Se preferisci un’applicazione grafica per gestire i tuoi servizi, puoi dare un’occhiata al Gestore di sistema progetto. Tuttavia, sarai limitato in ciò che puoi fare con esso, poiché la riga di comando offre molta più flessibilità.

Alessandro Andrei

Si è innamorato dei computer quando aveva quattro anni. 27 anni dopo, la passione è ancora accesa, alimentando un apprendimento costante. Trascorre la maggior parte del suo tempo nelle finestre dei terminali e nelle sessioni SSH, gestendo desktop e server Linux.