Quando avvii il tuo sistema, passa attraverso una sequenza di eventi prima di presentarti la schermata di accesso. Hai mai controllato quanto tempo impiega il tuo sistema ad avviarsi? Generalmente, tutto avviene in pochi secondi o pochi minuti ma non conosciamo l'ora esatta. A volte, per alcuni motivi, potrebbe essere necessario trovare il tempo esatto impiegato dal sistema per avviarsi. Indipendentemente dal motivo per cui vuoi saperlo, esiste un'utilità systemd-analyze che può farti sapere il tempo esatto impiegato dal tuo sistema Linux per avviarsi.
Anche se puoi usare un orologio o un cronometro per monitorare questo tempo quando il tuo sistema inizia l'avvio, ma ciò non è fattibile per ogni situazione, specialmente per i server in esecuzione che difficilmente puoi riavviare. Ad esempio, se disponi di un server che esegue servizi critici e ti viene richiesto di trovare il tempo necessario per l'avvio del sistema. In questo caso, è necessario riavviare il server, cosa che non è possibile in ogni momento.
In questo articolo imparerai a scoprire quanto tempo impiega il tuo sistema Linux per avviarsi e come ridurre questo tempo se si avvia lentamente.
Nota :
- La procedura discussa in questo articolo è stata testata su Ubuntu 20.04 LTS. La stessa procedura può essere eseguita in qualsiasi distribuzione Linux con systemd abilitato.
- Per aprire il Terminale della riga di comando, usa la scorciatoia da tastiera Ctrl+Alt+T.
Cos'è systemd-analyze?
Systemd-analyze è uno strumento che può essere utilizzato per apprendere le statistiche dell'ultimo avvio del sistema. Con lo strumento systemd-analyze, puoi trovare le informazioni su quanto tempo ha impiegato il sistema per avviarsi e anche quanto tempo ha impiegato ciascuna unità per avviarsi. Fortunatamente, non è necessario installare questo strumento, poiché è uno strumento integrato di sistema. Puoi verificarlo utilizzando il seguente comando in Terminale:
$ which systems-analyze
L'output mostrerà il percorso completo del comando eseguibile.
Trovare il tempo impiegato dal sistema per avviarsi
Per trovare il tempo impiegato dal sistema per avviarsi, digita semplicemente analisi-sistema senza alcun argomento della riga di comando nel Terminale:
$ systemd-analyze
Quando esegui il comando precedente, lo strumento systemd-analyze calcola il tempo impiegato dal sistema fino al completamento dell'avvio, suddiviso in kernel e spazio utente.
Come puoi vedere nello screenshot sopra, il tempo di avvio totale del nostro sistema è 32.378 s. secondi ed è suddiviso in:
- Kernel:6.074
- Spazio utente:26.304 secondi
Indaga/risolvi i problemi di avvio lento
Se il tempo di avvio è maggiore, è necessario trovare quale servizio sta rallentando il processo di avvio. Puoi trovarlo usando il colpa systemd-analyze comando. Questo comando elenca tutti i servizi in esecuzione avviati all'avvio insieme al tempo impiegato. Con queste informazioni, puoi ottimizzare il tempo di avvio del sistema.
Emetti il seguente comando in Terminale per trovare il servizio da incolpare per il lento processo di avvio:
$ sudo systemd-analyze blame
Questo comando elenca i servizi avviati all'avvio insieme al tempo impiegato da ciascun servizio per l'inizializzazione. L'elenco è ordinato in base al tempo trascorso in ordine decrescente.
L'elenco delle colpe può essere piuttosto lungo, di solito le prime 10 voci sono sufficienti per trovare i servizi che richiedono molto tempo. Pertanto, reindirizza l'output del comando precedente al comando "head" come segue:
$ sudo systemd-analyze blame | head
È inoltre possibile stampare l'output sotto forma di albero della catena di eventi time-critical. Emetti il seguente comando in Terminale per farlo:
$ systemd-analyze critical-chain
Nell'output, vedrai una catena di eventi ordinati per ora (quando il servizio è diventato attivo) in ordine decrescente. Il valore dopo il carattere “@” in ogni evento è l'ora in cui il servizio è diventato attivo. Mentre il valore dopo il carattere “+” in ciascuna unità mostra il tempo impiegato dal servizio per iniziare.
Dall'output che hai ricevuto dai comandi precedenti, puoi facilmente scoprire quale servizio impiega più tempo per avviarsi e in cambio provoca un avvio lento del tuo sistema. Inizia dall'alto e disabilita i servizi che hanno impiegato più tempo per avviarsi purché non sia necessario avviarli all'avvio. Inoltre, disabilita tutti i servizi che, sebbene richiedano meno tempo ma non sono richiesti all'avvio poiché influiscono anche sul tempo di avvio del sistema.
Per disabilitare qualsiasi servizio, utilizzare la seguente sintassi:
$ sudo systemctl disable service-name
Questo è tutto ciò che c'è da fare! In questo articolo, hai imparato come utilizzare lo strumento integrato di systemd per scoprire il tempo impiegato dal tuo sistema per avviarsi. Se ci vuole più tempo per l'avvio, puoi anche trovare quei servizi che ne sono responsabili e disabilitarli per migliorare il tempo di avvio. Tuttavia, tieni presente che alcuni servizi predefiniti devono essere avviati all'avvio, quindi non è consigliabile disabilitare alcun servizio senza sapere cosa fa effettivamente, altrimenti potresti avere problemi.