Boot lento? Parallelizzati!

By firstbit

Avete mai avuto l’impressione che il vostro Debian, sistema veloce e scattante in ogni occasione tanto da far impallidire qualsiasi SO concorrente, perda colpi durante la procedura di boot? Beh, in tal caso, avete ragione.

Ma non temete, miei prodi! Esiste una soluzione a tutto e, in questo caso, la soluzione è anche particolarmente semplice.

Dunque procediamo: bisturi! O meglio… Synaptic!

Iniziamo subito con l’installare un paio di simpatiche applicazioncine: prima fra tutte bootchart.
Questo demone si avvia quasi istantaneamente dopo la scelta del kernel da utilizzare al boot e non fa nient’altro se non monitorare (e cronometrare) tutta la procedura di boot. Una volta installato basta aggiungere alla riga di boot del kernel che stiamo utilizzando l’opzione

init=/sbin/bootchartd

e, una volta che il pc si sarà effettivamente avviato, lanciare bootchart dal terminale. Verrà creata, nella nostra home, un’immagine svg con tutti i dettagli sul boot appena avvenuto.

Tutto ciò può essere molto utile per capire quali margini di miglioramento avrete con la procedura che descriverò fra poco.

Dopo aver controllato la velocità del vostro boot, installate insserv (con apt-get, synaptic o quello che più preferite). Dopo di che aprite il file /etc/init.d/rc e cercate la riga “CONCURRENCY=none”.

Il valore della variabile CONCURRENCY stabilisce se, e in che modo, i processi al boot possano essere avviati parallelamente l’uno all’altro.
Le possibili scelte sono 3: none (ovviamente inutile nel nostro caso), shell e startpar. Personalmente ho notato i miglioramenti maggiori utilizzando il valore shell ma vi consiglio comunque di fare qualche prova per vedere cosa fa al caso vostro.

A proposito: prima di salvare questo file vi consiglio di controllare se riuscite a fare il boot da cd, magari con una bella distribuzione live. La procedura, infatti, può comportare qualche rischio per cui è sempre meglio essere sicuri di poter rimodificare il file rc anche senza riuscire a fare il boot del sistema in maniera canonica.

A questo punto salvate pure il file rc e, da una qualsiasi shell con privilegi di root, lanciate

update-bootsystem-insserv

In questo modo state modificando l’ordine di boot in modo tale da poter lanciare il maggior numero di processi in parallelo.

Benissimo: non vi resta altro che incrociare le dita e far ripartire il pc; se tutto va come deve dovreste notare un notevole incremento di prestazioni al boot.

Tanto per darvi qualche numero significativo: utilizzando questa procedura io sono passato da 41 secondi a 25 per il boot. Niente male no?

2 Risposte a “Boot lento? Parallelizzati!”

  1. iridesp Dice:

    ciao, volevo chiederti: ma se dopo update-bootsystem-insserv il sistema non vuole più “bootare” basta rimettere CONCURRENCY=none per far ritornare tutto come prima ??

  2. firstbit Dice:

    sì in questo modo dovresti ritornare ad un boot lineare e ripristinare il corretto funzionamento del sistema.

    In ogni caso insserv memorizza dei backup delle impostazioni precedenti per cui puoi anche ripristinare l’ordine originale del boot!

Lascia una Risposta