Come posso migliorare la velocità di avvio?


67

Ho visto molti video che rendono Ubuntu più veloce, ma questi metodi rendono solo più veloci le prestazioni del desktop.

Sto cercando di velocizzare l'avvio del mio computer. È tutto ciò che posso fare per rendere l'avvio di Ubuntu significativamente più veloce?


5
I sistemi che usano systemd(dal 15.04 IIRC) vengono forniti con lo strumento systemd-analyzeche può aiutarti ad analizzare quale processo impiega il tempo necessario per l'avvio. Per man systemd-analyzesaperne di più su tutte le sue opzioni, è probabile che su quello che probabilmente utilizzerai di più systemd-analyze blame.
Byte Commander

@ByteCommander Una risposta passo dopo passo farà il lavoro.
Anwar,

Risposte:


28

Generalmente, minore è il numero di programmi caricati all'avvio, più veloce dovrebbe essere il sistema. Prova BUM (dal centro software) per disabilitare alcuni servizi non necessari e assicurati di non aver installato alcun programma non necessario che verrà caricato all'avvio. Infine, l'utilizzo di un'unità a stato solido (SSD) come dispositivo di avvio dovrebbe migliorare significativamente il tempo di avvio.

Un'altra cosa, anche il tipo di filesystem fa la differenza. EXT4 ha subito alcune regressioni delle prestazioni (secondo Phoronix) ma ho ancora trovato EXT4 eccezionale per l'avvio veloce.


potresti aggiungere quale servizio potrebbe essere disabilitato che non è normalmente utile?
Philippe Gachoud,

@PhilippeGachoud Non riesco proprio a ricordare ora. Questo è del 2010!
RolandiXor

Sto usando un SSD compatibile con le versioni precedenti e la mia scheda è SATA. Si avvia pazzo in fretta.
userDepth

17

L'ho incontrato l'altro giorno. Le sue istruzioni "e4rat" qui

Questa piccola app è sorprendente.

Ho preso un sempron AMD a processore singolo sovraccarico in esecuzione a 2800+ che normalmente avvia Natty a 1,45 minuti a 27,885 secondi.

Ho le carte di avvio per dimostrarlo. È pazzesco! inserisci qui la descrizione dell'immagine


1
Questo aiuta davvero !!!
user12164,

Sempre più persone devono sapere di e4rat, è uno strumento fantastico che ha apportato il più grande miglioramento di molti consigli e trucchi.
Victor Bjelkholm,

3
È ancora legittimo per 12.04? Ho sentito che causerebbe problemi con ureadahead. È vero?
user138784

@utente138784 a quanto ho capito, questo perché ureadahead fa lo stesso lavoro di e4rat, quindi sono ovviamente conflitti. Ma e4rat per qualche motivo sembra essere migliore di ureadahead. Inoltre, forse sarebbe utile - l'e4rat per qualche motivo non funziona di default, ha bisogno di qualche modifica , altrimenti il ​​file di registro non viene creato.
Ciao Angelo

e4rat non ha funzionato nel 16.04
Anwar il

17

Il miglioramento del tempo di avvio è fortemente correlato alla disabilitazione / gestione del servizio, ma le risposte attuali mancano di dettagli nella disabilitazione dei servizi che utilizza systemd.

Che cos'è systemd?

In breve, systemd è un gestore di sistemi e servizi per Linux, compatibile con gli script di inizializzazione SysV e LSB. Maggiori informazioni su questo possono essere lette dalla pagina ufficiale del progetto .

Controlla quali servizi richiedono più tempo

Utilizzare il comando seguente per verificare quale servizio richiede la maggior parte del tempo

systemd-analyze blame

Disabilitazione dell'avvio automatico dei servizi durante l'avvio

Se si desidera disabilitare l'avvio automatico dei servizi durante l'avvio, è possibile utilizzare il comando seguente

sudo systemctl disable some-time-eater-service.service --now

Tuttavia, potresti voler vedere quali altri servizi richiedono il servizio in questione. Per verificare utilizzare il seguente comando

systemctl list-dependencies some-time-eater-service.service --reverse

Nota: sostituire some-time-eater-service.servicecon il nome del servizio effettivo come postgresql@9.5-main.service.

Si noti che la disabilitazione dell'avvio automatico non rende un servizio non avviabile. Il servizio può essere avviato dopo l'avvio in caso di necessità. Se si desidera disabilitarlo completamente, leggere la sezione successiva

Disabilitazione completa dei servizi.

Se si desidera disabilitare completamente un servizio in modo che non possa essere avviato, è necessario utilizzare maskinvece di disabilitare. Come questo

sudo systemctl mask <SERVICE-NAME>

Sostituisci <SERVICE-NAME>con il nome effettivo di un servizio

La differenza tra maske disableè maschera rende un servizio completamente disabilitato, non è possibile avviarlo. È necessario unmaskavviarlo con systemd (è ancora possibile iniziare con service). Ma disabledisabilita semplicemente l'avvio automatico di un servizio, puoi avviarlo in un secondo momento.

Ad esempio, dopo aver mascherato il mio postgresql@9.5-main.serviceservizio, quando volevo avviarlo con systemctlil seguente messaggio viene visualizzato

Failed to start postgresql@9.5-main.service: Unit postgresql@9.5-main.service is masked.

Strumento GUI

Uno strumento GUI che trovo particolarmente interessante è systemd-manager, è ancora in fase di sviluppo e non è stato reso il suo percorso al repository ufficiale di Ubuntu. Tuttavia, puoi installarlo molto facilmente dalla pagina github di Systemd-Manager . Le versioni contengono un pacchetto .deb, che è molto facile da installare. Tuttavia, è necessario GTK-3.16 o versioni successive.

Una volta scaricato e installato, puoi avviarlo con il systemd-managercomando. Avviarlo

L'applicazione ha due viste principali. Uno è Unità Systemd e l'altro è Analizza Systemd . Puoi cambiarlo con l'etichetta nell'angolo in alto a sinistra. Guarda lo screenshot.

Passa da una vista all'altra

E ci sono tre tipi di unità che puoi gestire. Servi , prese e timer . Puoi passare da uno all'altro. Guarda lo screenshot.

Passa da un tipo di unità all'altro

Visualizzazione delle informazioni

Le tre schede principali sono File , Diario , Dipendenze .

  • File è il file di configurazione dell'unità selezionata.
  • Il journal è l'output del sistema live mentre si abilita / disabilita / avvia / ferma le unità
  • Le dipendenze mostrano quali altri servizi o unità devono essere abilitati per avviare un servizio selezionato.

Indicatori di stato

Ci sono due colonne accanto al nome delle unità per indicare lo stato. Quello a sinistra indica se quell'unità è abilitata per l'avvio all'avvio e quella a destra indica se quell'unità è attualmente in esecuzione. Li vedi in foto.

Abilitato allo stato di avvio

Stato attualmente in esecuzione

Interruttori di controllo

Per abilitare toogle all'avvio o lo stato di esecuzione, ci sono due pulsanti toogle nell'angolo in alto a destra. Abilitato significa che le unità si avviano e si avviano. Li vedi in foto.

Toogle passa per abilitare / iniziare

La vista completa dell'applicazione è mostrata di seguito

Vista completa

Spero che questo possa aiutare. Sono stato beneficiato di altre risposte su systemd, ma avevo davvero bisogno di raccogliere le informazioni in un posto.

Ulteriori informazioni :

Per saperne di più su di systemdte puoi visitare questi link:

Altre risposte hanno suggerimenti diversi. Compreso l'acquisto di SSD, l'aumento della RAM, ecc. Se te lo puoi permettere, sicuramente ti aiuteranno, in particolare il suggerimento SSD.


15

Passare da un'unità magnetica a un'unità a stato solido o un'unità ibrida a stato solido e magnetico. Ciò renderà l'avvio di qualsiasi sistema operativo molto più veloce. Le unità ibride non sono molto più costose. Se non vuoi andare così lontano, procurati un disco rigido da 7200 o 10K RPM.


6
La velocità del disco è l'attuale collo di bottiglia.
Scott

@scottl dato i miei dischi sono SATA e il mio tempo di avvio è simile al 01:45 min riportato da @RobinJ, dubito che ci sia alcun motivo di puntare il dito verso le prestazioni del disco in particolare. La cosa che vedo, tuttavia, è che il montaggio di dischi e condivisioni avviene in modo sincrono, nonostante 1.) l'uso fastboote 2.) quei dischi non siano importanti per il processo di avvio.
0xC0000022L

13

Presumo tu stia parlando di Ubuntu 11.04?
Ci sto provando da molto tempo ormai, senza molto successo. Ad ogni modo, questi passaggi hanno fatto la differenza di pochi secondi:

1. Rimozione dei pacchetti non necessari

apt-get purge brltty brltty-x11 foo2zjs min12xxw ttf-indic-fonts-core ttf-kacst-one ttf-khmeros-core ttf-lao ttf-punjabi-fonts ttf-unfonts-core

2. Uso di entrambi i core / CPU durante il processo di avvio

FARE QUESTO SE SEI SICURO CHE IL TUO COMPUTER HA MOLTEPLICI CPU / CAVI!
Apri /etc/init.d/rc(avrai bisogno dei privilegi di root) e sostituisci CONCURRENCY=nonecon CONCURRENCY=shell. Quindi salva il file.

Aggiornare

"CONCURRENCY = shell è ora obsoleto ed è alias di 'makefile'. Dal 14/05/2010 il valore predefinito è 'makefile'."    ~ Jonathon

3. Disabilitare i demoni non necessari

Questo è un po 'più avanzato, quindi è meglio non farlo se non sai cosa significa. Installa bume avvialo con i privilegi di root. Quindi deseleziona le caselle di fronte ai demoni di cui sei sicuro di non aver bisogno. Ad esempio, quando non si dispone di uno scanner, è possibile disabilitare saned. E se non usi mai il bluetooth, puoi anche disabilitare bluetooth.
Al termine, premi il pulsante Applica e fai clic su o No (non importa molto).

Dopo aver completato questi passaggi, riavviare due volte . Per qualche motivo il primo riavvio dopo aver modificato tutte queste opzioni richiede molto più tempo rispetto alle altre, ma dovresti notare alcune differenze durante il secondo riavvio.


3
CONCURRENCY = la shell ora è obsoleta ed è alias di "makefile". Dal 14/05/2010 il valore predefinito è 'makefile'.
Jonathon,

È possibile elencare (o fornire una breve spiegazione) quali pacchetti si consiglia di rimuovere? (primo punto nella tua spiegazione). Ricorda sempre che ci sono persone che fanno semplicemente copia-incolla e all'improvviso non riescono a leggere dal terminale, ecc.
Willem Van Onsem,

1
@CommuSoft Dato che questa risposta riguarda Ubuntu 11.04, in ogni caso, sarebbe sconsigliabile applicare la stessa risposta a versioni più recenti. Alcune di queste cose non funzioneranno più e altre potrebbero danneggiare il sistema.
RobinJ,

9

Usa il diagramma di avvio per produrre grafici dettagliati di ciò che richiede tempo durante l'avvio. Potrebbe aiutare a decidere cosa modificare o rimuovere. Da https://wiki.ubuntu.com/BootCharting :

  • Installa i pacchetti bootchart e pybootchartgui , tramite apt-get o Synaptic
  • Riavvia il tuo computer
  • Il diagramma di avvio è in / var / log / bootchart come file .png

L'equivalente moderno è coperto qui askubuntu.com/a/763070/178596
Wilf


3

La mia macchina si avviava VELOCEMENTE più velocemente se ho eseguito un'installazione alternativa e aggiunto manualmente i pacchetti GUI. Certo, elimina solo le cose di cui non ho bisogno e che sono in grado di aggiungere me stesso. Se tornerai con "come faccio a compilare / installare app X, Y e Z", questa potrebbe non essere una buona idea.


3

Per chiunque abbia difficoltà con questo, basta installare BUM e avviarlo come utente root (fare attenzione a usare gksudo invece del normale sudo). Quindi deseleziona il servizio che vuoi disabilitare (ho disabilitato Apache2, demone PostGreSQL, MySQL, virtual box et al) e il gioco è fatto! Puoi eliminare completamente il servizio se non lo desideri lì, ma disabilitarlo è più che sufficiente.

sudo apt-get install bum

inserisci qui la descrizione dell'immagine



2

Modifica 2016/10/25: Se non si intende utilizzare l'ibernazione perché non si può o si preferisce sospendere / S3 allora si può disattivare in Grub con l'aggiunta noresumedi GRUB_CMDLINE_LINUX_DEFAULTin /etc/default/grubed eseguire update-grub. Ecco un esempio su un Chromebook N22 con GalliumOS:

livewire@zc01:~$ systemd-analyze
Startup finished in 8.580s (kernel) + 4.160s (userspace) = 12.740s

livewire@zc01:~$ systemd-analyze
Startup finished in 3.595s (kernel) + 4.254s (userspace) = 7.850s

L'ho trovato perché ero curioso della parte "Esecuzione degli script local-premount" durante l'avvio e ho studiato un po 'in initramfs che mi ha portato a questa opzione che in precedenza avevo usato solo quando il mio sistema non poteva svegliarsi dall'ibernazione.


Modifica 06.08.2016: è necessario aggiornare a una versione recente della propria distribuzione Linux fornita con systemd.


Ingredienti:

  • Ottieni un sistema UEFI con codice UEFI senza gonfiaggio o Coreboot
  • Ottieni un SSD
  • Installa Ubuntu in modalità UEFI
  • Bonus: comprime initramfs con xz lzop e include solo i moduli necessari. (Dovresti davvero sapere cosa stai facendo prima di provare a farlo.)
  • Bonus: rimuovi i demoni non necessari o configurali per avviarsi più velocemente. Sebbene l'installazione predefinita sia già abbastanza buona.
    • Esempio: il processo init di btrfs che sta cercando pool da montare mentre non ci sono volumi btrfs su questo dispositivo. Questo mi ha fatto rimuovere btrfs-tools da alcune delle mie installazioni.

Devo dire che 32 secondi è effettivamente abbastanza buono. Non sarà molto più veloce con l'hardware tradizionale. Il mio nuovo Lenovo T530 impiega lo stesso tempo per l'avvio in modalità legacy. Con il nuovo micro SSD che ho installato di recente e Ubuntu in modalità UEFI, è necessario premere il pulsante di accensione per accedere per 15 secondi. Sembra ancora che stia perdendo 5 secondi durante la posta, ma non sta assolutamente perdendo tempo ad avviare il sistema operativo attuale. Il micro SSD ha una velocità di trasferimento di 280 MB / s, può essere un SSD da 500 MB / s potrebbe arrivare a 7 secondi. Ma spetta ai produttori ridurre i tempi di avvio pre-SO (POST e cosa no).

Per quanto riguarda il profilo di avvio e la concorrenza della shell. Tali informazioni possono essere viste come datate o eventualmente mito. Ricordo che anni fa la profilazione automatica del boot o qualcosa che rendeva assolutamente superflua la profilatura di boot era stata aggiunta a Linux o al sistema principale, da allora non ho più usato la profiling di boot dopo l'installazione di un nuovo pacchetto kernel. Si dice che l'impostazione della concorrenza della shell rompa le cose, ma con Systemd e Upstart dovrebbe anche essere superflua e non dovrebbe avere effetti positivi.


1

Garbagecollector ha ragione. Procedi con cautela. Ma alcuni dei programmi che è possibile disabilitare in modo sicuro sono programmi di utilità di pop-up come Evolution, soprattutto se all'inizio non si utilizza Evolution. Inoltre, qualsiasi cosa relativa alla stampa può essere disabilitata se non si stampa affatto. Lo stesso vale per Wireless se si è cablati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.