Velocizzare boot e prestazioni su Debian Squeeze parte 1

 

 

Questa guida si propone di rendere più veloce e performante Debian Squeeze, partendo dalla fase di boot. Allo stesso tempo ho voluto provare questi stessi passi anche su LMDE che di default, a mio avviso, è più lenta di Debian Squeeze. Questa guida è adatta chiaramente in ambito Desktop, io stesso sono alla ricerca di un compromesso accettabile, quindi è da considerarsi "sperimentale", di conseguenza da usare a proprio rischio e pericolo. Questa guida ho deciso di dividerla in due parti, nella prima parte si parlerà di come velocizzare  la fase di boot, mentre nella seconda parte di come aumentare le prestazioni del sistema. Quindi c'è la possibilità di provare singolarmente queste due guide e farsi un idea dei vantaggi e degli svantaggi.

 

Velocizzare Boot

 

Step 1 servizi:

Indubbiamente la base da cui partire è sempre l'eliminazione dei servizi di avvio che non si utilizzano, a questo proposito esistono nei repository degli strumenti come Bum è sysv-rc-conf. quest'ultimo molto potente, per ottenere uno snellimento dei servizi.

 

Step 2 insserv:

installare insserv se non già presente, ed abilitare l'esecuzione in parallelo dei servizi:

 

# echo 'CONCURRENCY=makefile' >> /etc/default/rcS

 

Step 3 preload:

installare preload che si occuperà di monitorare le applicazioni lanciate dagli utenti e dalle analisi di questi dati predice quali applicazioni potrebbero eseguire gli utenti, di conseguenza recupera e porta in memoria i relativi binari e le loro dipendenze in modo da velocizzarne l'avvio (programmi).

 

Step 3 readahead-fedora:

installare readahead-fedora, uno strumento che precarica file, in questo caso quelli usati durante il processo di boot, per accelerare l'avvio del sistema. Il file di configurazione è in /etc/readahead.conf, assicurarsi che readahead punti a preload:

 

RAC_EXECIGN="/sbin/readahead /usr/sbin/preload"

e passare da 300 a 100 in:

RAC_MAXTIME="100"

quindi:

# reboot

all'avvio di grub bisogna passare un parametro al kernel per avviare il processo:

init=/sbin/readahead-collector

 

Per concludere questa prima parte mi soffermo su dei numeri appena testati su LMDE, e ne ho fatto una media, il tempo è stato preso dal push del tasto invio fino alla comparsa del desktop (musichetta e compiz) il mio OS è settato senza password, quindi login automatico.

Boot in 23.8 secondi

Halt/Reboot in 10 secondi netti.

Certo ci sono i pro ed i contro con un boot veloce 🙂 Nei prossimi giorni la parte 2.

 

enjoy 😉

Autore: Franco Conidi aka edmond

Senior System Integrator, Network Administrator, Sys Admin Linux, Linux User, Consulente Informatico.

51 pensieri riguardo “Velocizzare boot e prestazioni su Debian Squeeze parte 1”

  1. provala picchio 😉  c'è da dire in aggiunta che il test è stato fatto con kernel 2.6.37-ck1

  2. è da un'pò che seguo il tuo blog e anche se è molto tecnico certe volte è facile per la lettura.
    Ho applicato la guida anche se preload l'avevo già installato.
    Vediamo domani al riavvio 😛

  3. @Mte90

    tieni presente che nei risultati del test fatto sopra, è inclusa anche le modifiche fatte nella parte 2 del

    post che sarà prox on line 🙂 , sicuramente già così avrai dei miglioramenti, specialmente se hai fatto

    pulizia dei servizi che non ti servono.  Se oltre a BUM usi sysv-rc-conf ti basta con i tasti freccia passare

    nella casella di init 2 e dare una ripulita.

  4. Un po' di dubbi sul preload, ma readahead-fedora lo uso anche io su una Ubuntu al posto di ureadahead (che richiede una patch nel kernel).

  5. ciao Janvitus, i dubbi su preload li ho anche io, ma voglio dare fiducia agli sviluppatori 😉

  6. Ciao, preload e readahead-fedora li avevo già provati sul mio vecchio portatile con Squeeze, ma le ultime due indicazioni su readahead mi sono nuove. Perché far puntare readahead su preload? A cosa serve il parametro RAC_MAXTIME e perché portarlo da 300 a 100? Oltretutto, dopo aver installato Readahead, non bisognerebbe avviare il kernel con l'opzione "profile", per poter protocollare i processi del boot da caricare nella cache (cit. Debianizzati e-zine #2)? Grazie!

  7. @Joif

    per quanto riguarda readahead-fedora hai ragione sul parametro da passare al kernel, che io ho dimenticato nella guida. Infatti bisogna avviare il kernel col parametro:

    init=/sbin/readahead-collector

  8. Ciao a tutti
    non mi è molto chiaro il passaggio dopo il riavvio. Come faccio a passare il parametro al kernel per avviare il processo?
    devo andare in grub(cn il tasto c) e dargli la stringa init=/sbin/readahead…. Vorrei capire questo punto

  9. @giovanni

    in grub premi "e" e dove c'è la voce del kernel, dopo di "ro quiet" o simili

    inserisci il parametro init=/sbin/readahead-collector e poi

    boot con Ctrl+x

  10. ma dopo aver premuto "e" e passato il parametro "init=/sbin/readahead-collector" va modificato qualche file per far si che il parametro venga letto ogni volta?

  11. Carissimo, bella guida.
    Tuttavia, ti fo una segnalazione.

    Da mesi uso CONCURRENCY=makefile, ma, leggendo questa pagina, ho voluto ridare una chance a CONCURRENCY=shell.

    Ebbene, non v’è dubbio alcuno: con shell il boot sul mio eeepc 1000he si rallenta di 10 SECONDI ca.!!!!!

    Ciao
    Doc

  12. @Doc

    se mi dici che hai avuto questo responso non posso che crederti, e mi prometto

    di testare il tutto anche io sul mio Aspire One questo fine settimana, per farmi un idea delle differenze.

    grazie a presto 😉

  13. in realtà dovrebbe metterci pochissimo a leggere il file, anche se a volte può

    capitare che ci mette un pò di più. Monitora se è una costante oppure è saltuaria questa pausa.

  14. ciao ho un'altra domanda, da quando ho provato la tua guida il boot risulta essere piu veloce (complimenti 😉 ) tuttavia all'avvio perde molto tempo alla riga:

    > Reading early boot file
    Questo non mi era mai successo, hai idea di cosa possa essere?

  15. La pausa è costante, la noto ormai da tempo come posso agire? può essere che abbia fatto pasticci passando qualche valore del kernel?

  16. putropppo anche con Dopo “quiet” non funziona, forse sbaglio a passare il parametro..
    dove esattamente devo metterlo?

  17. menu grub premere “e” ed inserire init=/sbin/readahead-collector

    menuentry “Debian GNU/Linux, with Linux 2.6.36-ck2-bfs-edm (on /dev/sda5)”
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)’
    search –no-floppy –fs-uuid –set 27ec857b-418a-4baf-b851-3c20a197359f
    linux /boot/vmlinuz-2.6.36-ck2-bfs-edm root=UUID=27ec857b-418a-4baf-b851-3c20a197359f ro quiet init=/sbin/readahead-collector
    initrd /boot/initrd.img-2.6.36-ck2-bfs-edm

    magari il problema che hai è relativo a qualcosa che avrai toccato…bho

  18. Ora mi sono ricordato!!! Ci avevo studiato mesi fa.
    Dato “nano /etc/init.d/rc”, verso l’inizio si legge:
    # Specify method used to enable concurrent init.d scripts.
    # Valid options are ‘none’ and ‘makefile’. Obsolete options
    # used earlier are ‘shell’ and ‘startpar’. The obsolete options
    # are aliases for ‘makefile’ since 2010-05-14. The default since
    # the same date is ‘makefile’, as the init.d scripts in Debian now
    # include dependency information and are ordered using this
    # information. See insserv for information on dependency based
    # boot sequencing.
    CONCURRENCY=makefile

    Dunque, vada per makefile!

  19. @Doc
    ok mi fido della tua valutazione, e modificherò la guida inserendo
    CONCURRENCY=makefile
    grazie per la precisazione 😉

  20. Grande Edmond !E grazie della guida. Ma quando cerco di abilitare i servizi mi da: alex@debian:~$ echo ‘CONCURRENCY=makefile’ >> /etc/default/rcS
    bash: /etc/default/rcS: Permission denied .Mentre nel: /var/log/boot mi trovo un sacco di errori:

    Thu Jun 9 19:43:31 2011: /etc/default/rcS: 21: cannot create /etc/default/rcS: Read-only file system
    Thu Jun 9 19:43:31 2011: /etc/default/rcS: 22: sudo: not found
    Thu Jun 9 19:43:31 2011: /etc/default/rcS: 21: cannot create /etc/default/rcS: Read-only file system
    Thu Jun 9 19:43:31 2011: sudo: unable to resolve host (none)
    Thu Jun 9 19:43:31 2011: CONCURRENCY=makefile
    Thu Jun 9 19:43:31 2011: Setting parameters of disc: (none).
    Thu Jun 9 19:43:31 2011: Setting preliminary keymap…done.
    Thu Jun 9 19:43:31 2011: /etc/default/rcS: 21: cannot create /etc/default/rcS: Read-only file system
    Thu Jun 9 19:43:31 2011: CONCURRENCY=makefile

  21. Infatti ;ho eliminato il file e lo ricreato da “root” ,cosi non mi da più errori .E rimasto solo un problema :che il riavvio mi reseta il parametro “init=/sbin/readahead-collector” aggiunto al kernel

  22. infatti è giusto così, quel parametro va passato una sola volta, e se tu noti al momento del boot nelle
    prime righe lui appare, segno che sta lavorando.

  23. scusate, ma concurrency=makefile in che file va modificato?
    con questo comando cosa creo? echo ‘CONCURRENCY=makefile’ >> /etc/default/rcS
    mi crea il file rcS, ma concurrency non va messo in /etc/init.d/rc ? Scusate, sono molto confuso, sono su ubuntu 11.04, con gnome 2.32

  24. Ubuntu usa un sistema di avvio completamente diverso, a quanto mi risulta, e dunque non considero buona cosa apportare una simile modifica.
    Ciao

  25. ok, adesso non fa il reboot, cioè si pianta sulla schermata di plymouth e non si spegne…
    proverò ad eliminare tutto quello che ho aggiunto…

  26. ok, rimosso tutto quello che è in guida (I e II parte), ubuntu si inchioda sempre al reboot.
    Fa niente, proverò qualche soluzione su google, altrimenti formatto e metto su lmde

  27. OTTIMO! Così ti sbarazzi di quella cosa marrone!

    Consiglio: lascia perdere la cosa verde e rivolgiti direttamente alla mamma!

  28. ok il problema era CONCURRENCY=makefile che io avevo messo in /etc/init.d/rc, se lascio none si spegne correttamente
    a differenza del tuo il mio file rc recita così
    Specify method used to enable concurrent init.d scripts.
    # Valid options are ‘none’, ‘startpar’ and ‘makefile’. To enable
    # the concurrent boot option, the init.d script order must allow for
    # concurrency. This is not the case with the default boot sequence in
    # Debian as of 2008-01-20. Before enabling concurrency, one need to
    # check the sequence values of all boot scripts, and make sure only
    # scripts that can be started in parallel have the same sequence
    # number, and that a scripts dependencies have a earlier sequence
    # number. See the insserv package for a away to reorder the boot
    # automatically to allow this.
    CONCURRENCY=none

    Il tuo postato sopra è forse più recente del mio?

  29. certo che il problema era quello…non tutte le modifiche che fai su Debian vanno bene per buntu,
    e viceversa.

  30. Anche io ho lo stesso problema di Andrea. Rimane fisso (ad ogni accensione) per almeno 10 secondi su
    > Reading early boot file

    Inoltre il caricamento cambia quando inserisco
    init=/sbin/readahead-collector
    ma al riavvio successivo torna come prima e la riga non è presente.

    Sbaglio qualcosa?

  31. il parametro init=/sbin/readahead-collector va messo
    una sola volta, infatti poi inizia a lavorare. Al riavvio
    successivo è giusto che non lo ritrovi, ma comunque sta lavorando.
    Controlla con calma se hai eseguito il procedimento esatto.

  32. Ho controllato più volte ed ho anche inserito nuovamente il parametro. Il resto del boot va velocissimo, ma quel file non passa in meno di 10 secondi.

    Potrei rifare la procedura? Ma non credo cambi molto.

    Utilizzo Debian Testing.

  33. eppure inizialmente qualcosa hai sbagliato, non si deve bloccare,
    purga tutto, riavvia e riprova

  34. Quindi ripristino i files come erano in origine, do “sudo apt-get purge preload && sudo apt-get purge readhead-fedora” rebooto e rifaccio tutto?

    Credo che il risultato non cambierà perché mi sono attenuto alla guida. Provare non costa nulla però.

  35. Disinstallando readahead-fedora debian testing 32 bit va in kernel panic al boot, dice che non trova nel file system il file readahead-collector, quindi vuol dire che l’installazione “sporca” qualche file che poi non ripulisce quando il pacchetto viene disinstallato, solo che io volevo fare delle prove con e senza per capire se nel mio caso apporta effetivamente dei benefici.

    ciao e grazie delle info sul blog le ho trovate molto utili.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *